[issue14548] garbage collection just after multiprocessing's fork causes exceptions

Charles-François Natali report at bugs.python.org
Thu Apr 12 10:01:00 CEST 2012


Charles-François Natali <neologix at free.fr> added the comment:

>> That's a problem indeed. Perhaps we need a global "fork lock" shared
>> between subprocess and multiprocessing?
>
> I did an atfork patch which included a (recursive) fork lock.  See
>
>    http://bugs.python.org/review/6721/show
>
> The patch included changes to multiprocessing and subprocess.  (Being able to acquire the lock when doing fd manipulation is quite useful.  For instance, the creation of Process.sentinel currently has a race which can mean than another process inherits the write end of the pipe.  That would cause Process.join() to wait till both processes terminate.)

Indeed, I had a look and it looked good.
I just had a couple minor comments, I'll try to get back to this later
today, or by the end of the week.

> Actually, for Finalizers I think it would be easier to just record and check the pid.

I'd prefer this too.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14548>
_______________________________________


More information about the Python-bugs-list mailing list