This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author gvanrossum
Recipients David.Edelsohn, db3l, gvanrossum, larry, ncoghlan, neologix, pitrou, python-dev, skrah
Date 2013-10-20.08:42:09
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAP7+vJL3iddpA5R_r8E3s5CCRLzjvOmvZcGMBavUuRu9dqYO_w@mail.gmail.com>
In-reply-to <CAH_1eM2vdVoVZQQOGQoXwzG57AepgQ4rxF5XR+JNrLH-dYZybg@mail.gmail.com>
Content
> Apparently, the stdout pipe was closed by the parent process

Could it be that selecting for *read* on the *write* end of a pipe is
always ready? In _UnixWritePipeTransport there's a read handler that
immediately closes the pipe as soon as it called. I vaguely remember a
discussion on python-tulip that this might be Linux-specific behavior. (The
reason is that otherwise you can't find out whether the other end was
closed unless you attempt to write to the pipe.)

To test this theory, it should be sufficient to comment out line 280

self._loop.add_reader(self._fileno, self._read_ready)

from unix_events.py. This will make test_subprocess_kill() hang but it
should not affect test_subprocess_interactive. (So it is not a fix, just a
way to confirm the theory.)
History
Date User Action Args
2013-10-20 08:42:10gvanrossumsetrecipients: + gvanrossum, db3l, ncoghlan, pitrou, larry, skrah, neologix, python-dev, David.Edelsohn
2013-10-20 08:42:09gvanrossumlinkissue19293 messages
2013-10-20 08:42:09gvanrossumcreate