subprocess.Popen deadlocks

eraserix eraserix at gmail.com
Wed Nov 10 12:19:13 EST 2010


Hi

>From time to time I observe a deadlock in subprocess.Popen. I see the
childprocess beeing <defunct> and if I attach gdb to the stuck python
script, I can see it waiting on line 1128 in subprocess.py ( data =
_eintr_retry_call(os.read, errpipe_read, 1048576) ).

Any ideas of whats going on? I'm on linux using python 2.6.5. I
already found http://bugs.python.org/issue1731717 and stubbed out
subprocess._cleanup, but this didn't really help and doesn't seem to
be the problem anyway...

A bit of information about what I'm trying to do:
I try to control several process from a python script. Each process is
started from a thread, the threads just wait() for the child to exit
and can then be joined. Main waits for SIGINT. After it received the
signal, it will send a signal to the processes spawned by the threads
and then join() the threads (which should terminate after their
process exits)

Christoph



More information about the Python-list mailing list