[issue9205] Parent process hanging in multiprocessing if children terminate unexpectedly

Antoine Pitrou report at bugs.python.org
Tue May 3 13:34:31 CEST 2011


Antoine Pitrou <pitrou at free.fr> added the comment:

> > Killed by the user, or by an automatic device (such as the Linux OOM
> > killer), or crashed.
> 
> Crashed would be bad - it would indicate a bug in the  
> ProcessPoolExecutor code.

I meant a crash in Python itself, or any third-party extension module.

> >> If the user kills a child then maybe all we want to do is raise an
> >> exception rather than deadlock as a convenience.
> >
> > That's what the patch does, roughly.
> 
> Right. But instead of trying to recover, it might be better to fail  
> very loudly i.e.
> - fail every non-finished future
> - kill every child process in the ProcessPoolExecutor
> - set the ProcessPoolExecutor as shutdown so no new work can be  
> scheduled

Yes, I think that's better (see my message about the internal state of
queues).

----------

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


More information about the Python-bugs-list mailing list