[pypy-dev] Emulate pypy SIGSEGV

Santa santa.ssh at gmail.com
Tue Jul 4 06:45:41 EDT 2017


On 07/03/2017 06:04 PM, Armin Rigo wrote:
> Hi Pavlo,
>
> On 3 July 2017 at 16:25, Pavlo Lavrenenko <santa at portaone.com> wrote:
>> Running PyPy 5.6.0 with GCC 4.8.5 20150623 (Red Hat 4.8.5-4) here.
>> Occasionally PyPy terminates with signal 11 and a long stack consisting
>> mostly of: #31 0x00007f0d4c26ce7d in ?? () from /lib64/libpypy-c.so
>
> I would try first upgrading to PyPy 5.8.0.
>

Hello Armin,
any prominent changes between 5.6.0 and 5.8.0? Can I find the change logs somewhere?

>> kill -11 doesn't give the result I want. Any way to make PyPy crash
>> somewhere in /lib64/libpypy-c.so?
>
> ``os.kill(os.getpid(), signal.SIGSEGV)``?  If that's what you tried
> and it doesn't give the results you want, please explain in more
> details why not.
>

I don't understand why myself. The software works as:

# there is master process and N children
# master periodically checks if children are alive 
(multiprocessing.Process.is_alive())
# if not, master process calls join() and creates a new multiprocessing.Process 
instance

This whole machinery works fine if I send 11 signal to the child but stucks 
either after join() or further on the process creation. There is not enough 
logging in the software to trace the issue and the issue quite rare. Moreover 
when it comes to production and the issue is reproduced engineers just restart 
everything manually.

> A bientôt,
>
> Armin.
>



More information about the pypy-dev mailing list