multiprocessing, pool and process crashes

D

dragonk

I want to use the multiprocessing.Pool object to run multiple tasks in
separate processes.

The problem is that I want to call an external C function (from a
shared library, with help from ctypes) and this function tends to
crash (SIGSEGV,SIGFPE,etc.) on certain data sets (the purpose of this
thing is to test the behavior of the function and see when it
crashes).

My question is if the Pool object is able to spawn a new process in
place of the crashed one and resume operation. I killed with SIGSEGV
the subprocesses and the script locked up :(

Any ideas/alternatives?

Thanks!
 
J

Jesse Noller

I want to use the multiprocessing.Pool object to run multiple tasks in
separate processes.

The problem is that I want to call an external C function (from a
shared library, with help from ctypes) and this function tends to
crash (SIGSEGV,SIGFPE,etc.) on certain data sets (the purpose of this
thing is to test the behavior of the function and see when it
crashes).

My question is if the Pool object is able to spawn a new process in
place of the crashed one and resume operation.  I killed with SIGSEGV
the subprocesses and the script locked up :(

Any ideas/alternatives?

You're going to want to use a custom pool, not the built in pool. In
your custom pool, you'll need to capture the signals/errors you want
and handle them accordingly. The built in pool was not designed for
your use case.

-jesse
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top