Author vlasovskikh
Recipients vlasovskikh
Date 2010-04-03.03:37:13
SpamBayes Score 2.95972e-05
Marked as misclassified No
Message-id <1270265835.83.0.251816264221.issue8296@psf.upfronthosting.co.za>
In-reply-to
Content
multiprocessing.Pool methods map, imap, etc. are said to be able to normally handle exceptions. But it seems that it is true only for synchronous exceptions inside their first func arguments.

When (typically during a long-running parallel map) a user hits ^C, an asynchronous KeyboardInterrupt isn't handled properly and leads to the interpreter hangup. More precisely, children processes become <defunct> (on Linux), so the only way to terminate the whole program is to issue the KILL signal.

As stopping a program with ^C while running potentially long parallel computations is probably quite a common scenario, the interpreter should not hang up in such a case.

I'm using Python 2.6.5 (r265:79063, Mar 23 2010, 04:44:21) [GCC 4.4.3] on linux2. I've also tried to use the current multiprocessing.pool module from the current (2.7) trunk with my 2.6.5 installation, but the bug persists.
History
Date User Action Args
2010-04-03 03:37:16vlasovskikhsetrecipients: + vlasovskikh
2010-04-03 03:37:15vlasovskikhsetmessageid: <1270265835.83.0.251816264221.issue8296@psf.upfronthosting.co.za>
2010-04-03 03:37:14vlasovskikhlinkissue8296 messages
2010-04-03 03:37:13vlasovskikhcreate