Closed
Description
As reported here, if one of the stdio handles for a Windows process is unset (e.g. isn't present) then you won't actually be able to spawn a process by default. All handles are set, by default, to "inherit", but this currently means duplicate the existing handle, which in turn means that if the stdio handle isn't present this operation will fail.
Rust currently defends against this by always opening up handles even if Stdio::null()
is specified (just pointing them to a blank stream), but Rust should also defend against this situation when it was spawned from elsewhere.