Random signal capture when using multiprocessing

José María Mateos chema at rinzewind.org
Sat Jul 6 10:41:13 EDT 2019


On Sat, Jul 06, 2019 at 04:54:42PM +1000, Chris Angelico wrote:

> But if I comment out the signal.signal line, there seem to be no ill
> effects. I suspect that what you're seeing here is the multiprocessing
> module managing its own subprocesses, telling some of them to shut
> down. I added a print call to multiprocessing/popen_fork.py inside
> _send_signal (line 53 or thereabouts depending on Python version) and
> saw a *lot* of termination signals being sent; only a few actually
> triggered the exception message. My guess is that most of the time,
> the SIGTERM is smoothly handled as part of the Pool's __exit__ method,
> but sometimes the child process is blocked on something, and has to
> be told to shut down; and then normally, the signal gets caught and
> handled just fine, but since you're explicitly hooking it, you get to
> see it.

Ok, that makes all the sense in the world, thanks for digging into this.

-- 
José María (Chema) Mateos || https://rinzewind.org/



More information about the Python-list mailing list