[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS

Vitaly report at bugs.python.org
Tue Sep 11 09:44:06 CEST 2012


Vitaly added the comment:

By the way, the existing code in subprocess.Popen (at least on 2.6.7) reads the pipe incorrectly: It doesn't loop to read all the data until EOF -- it only loops over EINTR until it gets a single successful os.read() call.  However, since this is a pipe read (not a real file read), the system doesn't guarantee that the blocking read will read everything up to requested read size or EOF, whichever comes first.  So, the single os.read call could return a partial read, and the subsequent un-pickling of the exception would fail.

----------

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


More information about the Python-bugs-list mailing list