classification
Title: multiprocessing module: Double close of sys.stdin - ID: 2811568
Type: Stage:
Components: Extension Modules, Library (Lib) Versions: Python 2.4, Python 2.6, Python 2.5
process
Status: closed Resolution: duplicate
Dependencies: Superseder:
Assigned To: jnoller Nosy List: jnoller, subdir
Priority: normal Keywords: patch

Created on 2009-06-24 14:32 by subdir, last changed 2009-06-24 21:49 by jnoller. This issue is now closed.

Files
File name Uploaded Description Edit
multiprocessing.patch subdir, 2009-06-24 14:32 Suggested patch
Messages (2)
msg89666 - (view) Author: Alexey Akimov (subdir) Date: 2009-06-24 14:32
Double close of FD 0 when child process spawns its own child process.
Bug causes wrong file descriptors to be closed.
Bug affects only posix system.

How to reproduce:

>>> import multiprocessing as mp
>>> def child(q):
... print 'current process:', mp.current_process().name
... q.put(1)
... q.get()
... p = mp.Process(None, child, args=(mp.Queue(),))
... p.start()
...
>>> q = mp.Queue()
>>> child(q)
current process: MainProcess
current process: Process-1
current process: Process-1:1
Process Process-1:1:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/multiprocessing/process.py", line
236, in _bootstrap
self.run()
File "/usr/lib/python2.5/site-packages/multiprocessing/process.py", line
93, in run
self._target(*self._args, **self._kwargs)
File "<stdin>", line 4, in child
File "/usr/lib/python2.5/site-packages/multiprocessing/queues.py", line
91, in get
res = self._recv()
IOError: [Errno 9] Bad file descriptor
msg89683 - (view) Author: Jesse Noller (jnoller) * (Python committer) Date: 2009-06-24 21:49
Dupe of issue 5313
History
Date User Action Args
2009-06-24 21:49:40jnollersetstatus: open -> closed
resolution: duplicate
messages: + msg89683
2009-06-24 21:12:51benjamin.petersonsetassignee: jnoller

nosy: + jnoller
2009-06-24 14:32:43subdircreate