[New-bugs-announce] [issue4295] closing stdout in a child process on cygwin means that process doesn't receive bytes from stdin anymore. I think.
Zooko O'Whielacronx
report at bugs.python.org
Mon Nov 10 23:57:12 CET 2008
New submission from Zooko O'Whielacronx <zooko at zooko.com>:
When someone runs "bin/trial --reactor=select
twisted.internet.test.test_process.ProcessTestsBuilder_PollReactor.test_
childConnectionLost" on cygwin, using the cygwin version of Python,
either manually (which I've done on two cygwin installations), or from
the twisted buildbot --
http://buildbot.twistedmatrix.com/builders/cygwin-py2.5-select -- then
once the child process closes its fd #2, it subsequently receives no
further bytes from its fd #1, even though the parent process has written
some bytes to that pipe.
I can reproduce this by running the Twisted unit tests, like this:
step 1: get twisted:
svn co svn://svn.twistedmatrix.com/svn/Twisted/trunk twisted
step 2: cd into the top-level directory, and run trial:
cd twisted && python ./bin/trial --reactor=select
twisted.internet.test.test_process.ProcessTestsBuilder_PollReactor.test_
childConnectionLost
On other platforms that cygwin (see the Twisted buildbot --
http://buildbot.twistedmatrix.com/supported?branch=trunk -- then this
test exits quickly with success. On cygwin, using cygwin python.exe,
this test instead enter an infinite loop as the child waits to receive
further bytes on its stdin, and the parent waits for the child to
respond to those bytes. (This doesn't happen on cygwin with the standard
Win32 build of python.exe, of course, anymore than it happens on a
Windows system without cygwin installed when using that executable.)
I've opened a ticket about this on the twisted issue tracker as well:
http://twistedmatrix.com/trac/ticket/3529 # closing stdout in a child
process on cygwin means that process doesn't receive bytes from stdin
anymore. I think.
----------
components: Interpreter Core
messages: 75711
nosy: zooko
severity: normal
status: open
title: closing stdout in a child process on cygwin means that process doesn't receive bytes from stdin anymore. I think.
type: behavior
versions: Python 2.5
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4295>
_______________________________________
More information about the New-bugs-announce
mailing list