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 gagern
Recipients gagern
Date 2011-08-05.10:53:42
SpamBayes Score 1.0310823e-07
Marked as misclassified No
Message-id <1312541623.96.0.711973395002.issue12695@psf.upfronthosting.co.za>
In-reply-to
Content
suprocess.Popen on POSIX (using _posixsubprocess Module) has a good chance of repeatedly closing the same file descriptor if the descriptor for stdin is also used for stdout and/or stderr. Only stdout and stderr are checked for equality with one another.

This breaks webbrowser.open for me, as the browser remote has all three descriptors redirected from/to /dev/null. This breaks "pydoc -p". I've taken this scenario and turned it into a unit test, which you find attached together with a proposed fix.

On my currently installed Python 3.2, the unit tests results in this traceback (and two more like it for other test classes):

ERROR: test_inouterr_fileobj (__main__.ProcessTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Lib/test/test_subprocess.py", line 630, in test_inouterr_fileobj
    stderr = devnull)
  File "/usr/lib64/python3.2/subprocess.py", line 736, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.2/subprocess.py", line 1330, in _execute_child
    raise child_exception_type(errno_num, err_msg)
OSError: [Errno 9] Bad file descriptor
History
Date User Action Args
2011-08-05 10:53:44gagernsetrecipients: + gagern
2011-08-05 10:53:43gagernsetmessageid: <1312541623.96.0.711973395002.issue12695@psf.upfronthosting.co.za>
2011-08-05 10:53:43gagernlinkissue12695 messages
2011-08-05 10:53:42gagerncreate