[New-bugs-announce] [issue14148] Option to kill "stuck" workers in a multiprocessing pool

Paul Moore report at bugs.python.org
Tue Feb 28 12:43:00 CET 2012


New submission from Paul Moore <p.f.moore at gmail.com>:

I have an application which fires off a number of database connections via a multiprocessing pool. Unfortunately, the database software occasionally gets "stuck" and a connection request hangs indefinitely. This locks up the whole process doing the connection, and cannot be interrupted except by killing the process.

It would be useful to have a facility to restart "stuck" workers in this case.

As an interface, I would suggest an additional argument to the AsyncResult.get method, kill_on_timeout. If this argument is true, and the get times out, the worker servicing the result will be killed and restarted.

Alternatively, provide a method on an AsyncResult to access the worker process that is servicing the request. I could then wait on the result and kill the worker manually if it does not respond in time.

Without a facility like this, there is a potential for the pool to get starved of workers if multiple connections hang.

----------
components: Library (Lib)
messages: 154549
nosy: pmoore
priority: normal
severity: normal
status: open
title: Option to kill "stuck" workers in a multiprocessing pool
type: enhancement
versions: Python 3.3, Python 3.4

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


More information about the New-bugs-announce mailing list