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 vanco-buca
Recipients
Date 2007-07-16.23:34:28
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
Encountered a deadlock while executing a subprocess.call("<something>") in a multithreaded environment. After some debugging, found the child process stuck on a lock immediately after the fork, inside the module os's _execvpe() function. 

A Google search found a detailed discussion on this topic in the Python-Dev thread (see http://mail.python.org/pipermail/python-dev/2006-May/064983.html). 

My symptoms are exactly the same as the ones found by Rotem Yaari, and exactly the same fix worked as well (moving the "from errno import ENOENT, ENOTDIR" line to the beginning of the os.py file). 

Some details follow: 
- my code has several threads running, and some of them executes shell commands with subprocess.call(). 
- I'm running on Python 2.4.4, with a Linux 2.6.20 kernel, on a dual core system (uname -a shows: Linux rack1 2.6.18-gentoo-r3 #1 SMP PREEMPT Tue Dec 5 16:40:19 PST 2006 x86_64 AMD Opteron(tm) Processor 246 AuthenticAMD GNU/Linux)
History
Date User Action Args
2007-08-23 14:58:41adminlinkissue1755179 messages
2007-08-23 14:58:41admincreate