[Python-Dev] pthreads, fork, import, and execvp

Nick Coghlan ncoghlan at gmail.com
Thu May 18 14:59:53 CEST 2006


Martin v. Löwis wrote:
> Neal Norwitz wrote:
>>> As I said: I doubt it is the right thing to do. Instead, the lock
>>> should get released in the child process if it is held at the
>>> point of the fork.
>>>
>> I'm not sure if this bug can be reproduced now, but the comment in
>> warnings.py points to:
>>
>>    http://python.org/sf/683658
>>
>> I didn't investigate it further.  That might allow someone to create a
>> reproducible test case.
> 
> That's a different problem, though. Here, the main thread waits for a
> child *thread* while holding the import lock. I don't quite understand
> the test case given, and I can't make it deadlock anymore (probably
> because of Just's fix).

And if I understand it correctly, it falls under the category that waiting for 
another thread while holding the import lock is a *really* bad idea from a 
thread safety point of view.

The thing with the import-after-fork deadlock is that you can trigger it 
without even doing anything that's known not to be thread-safe.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list