[Python-Dev] Issue #8863 adds a new PYTHONNOFAULTHANDLER environment variable
Georg Brandl
g.brandl at gmx.net
Sat Dec 18 13:21:45 CET 2010
Am 18.12.2010 01:55, schrieb Victor Stinner:
> Hi,
>
> In 2008, I proposed a patch to raise a Python exception on SIGSEVG
> signal. In some cases, it's possible to catch the exception, log it, and
> continue the execution. But because in some cases, the Python internal
> state is corrupted, the idea was rejected (see the issue #3999).
>
> Someone asked me to display the Python backtrace on SIGSEGV, instead of
> raising an exception. I implemented this idea in issue #8863. After 9
> versions, I think that the patch is ready for inclusion. It catchs
> SIGSEGV, SIGFPE, SIGBUS and SIGILL signals, and also display the Python
> backtrace on fatal errors. Because some operating systems have their own
> fault handler (eg. Ubuntu with apport), Dave Malcolm asked me to add an
> option disable the Python handler. That's why I added the
> PYTHONNOFAULTHANDLER environment variable (we all love long variable
> names!). For an OS vendor, it looks like an environment variable is more
> practical than a command line option. Eg. Mandriva sets
> PYTHONDONTWRITEBYTECODE for the whole system.
>
> Raymond Hettinger asked me on IRC to write an email about the new
> environment variable, so here is the question: do you agree to add the
> new variable?
I very much like having a traceback on (some) segmentation faults, but
it's clear there needs to be a way to turn it off. An environment variable
seems to be the obvious choice (for the reasons you stated for
PYTHONDONTWRITEBYTECODE).
Georg
More information about the Python-Dev
mailing list