[issue25908] ProcessPoolExecutor deadlock on KeyboardInterrupt

2015-12-18 Thread Thomas Jackson
Thomas Jackson added the comment: Some more investigation, it seems that the alternate `Queue` fix is a non-starter. From my investigation it seems that the ProcessPoolExecutor is assuming that multiprocess.Queue is gauranteed delivery, and it isn't (because of the pickling). So the iss

[issue25908] ProcessPoolExecutor deadlock on KeyboardInterrupt

2015-12-18 Thread Thomas Jackson
Thomas Jackson added the comment: Seems that I accidentally hit submit, so let me finish the last bit of my message here: An alternate approach is to actually change multiprocessing.Queue.get() to leave the item on the queue if it is interrupted with a keyboard interrupt. Then the worker

[issue25908] ProcessPoolExecutor deadlock on KeyboardInterrupt

2015-12-18 Thread Thomas Jackson
New submission from Thomas Jackson: If a KeyboardInterrupt is received while a worker process is grabbing an item off of the queue that worker process dies with an uncaught exception. This means that the ProcessPool now has lost a process, and currently has no mechanism to recover from dead