[issue6457] subprocess.Popen.communicate can lose data from output/error streams when broken input pipe occures

Amaury Forgeot d'Arc report at bugs.python.org
Mon Jul 13 10:28:58 CEST 2009


Amaury Forgeot d'Arc <amauryfa at gmail.com> added the comment:

Testing on Debian with latest trunk:
- the proposed example code works very well (I get all data).
- I added "subprocess._has_poll = False", and some (sometimes all) data
is lost. It seems that select() will return stdin even if it is not
writable.

On Windows of course, communicate() uses a blocking write, and always fail.

The proposed patch ignore the errors when EPIPE is raised, and simply
stops writing.

----------
keywords: +needs review, patch
nosy: +amaury.forgeotdarc
stage:  -> patch review
Added file: http://bugs.python.org/file14493/broken_pipe.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue6457>
_______________________________________


More information about the Python-bugs-list mailing list