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 dwalczak
Recipients dwalczak
Date 2009-07-10.12:36:02
SpamBayes Score 1.3805358e-05
Marked as misclassified No
Message-id <1247229365.37.0.486388451669.issue6457@psf.upfronthosting.co.za>
In-reply-to
Content
It's possible to lose data piped through standard output and/or error
streams when large ammounts of data are transfered.

Reproduction:
1) Process A spawns process B with all standard I/O pipes and transfers
large ammount of data to it (100kB in my sample).
2) Process B exits very early (doesn't process all stdin data) and puts
large amount of data into its stderr or stdout streams.
3) IOError/OSError exception if errno variable set to errno.EPIPE is
raised on process A side.

Bug:
When the exception is catched Popen object's stdout and stderr members
may not contain data put into stderr/stdout streams by process B.

Note:
Described behaviour can be observed in Python 2.6.1 on FreeBSD 7.2 as
well as on Windows XP (Pro x64, SP2, up to date).

Real life example of such early end of process B:
openssl smime -verify -CApath /some/dir with large, unsigned email.

I attach simple reproduction code (execute sender.py script).
History
Date User Action Args
2009-07-10 12:36:05dwalczaksetrecipients: + dwalczak
2009-07-10 12:36:05dwalczaksetmessageid: <1247229365.37.0.486388451669.issue6457@psf.upfronthosting.co.za>
2009-07-10 12:36:04dwalczaklinkissue6457 messages
2009-07-10 12:36:03dwalczakcreate