[Scons-users] Crash in signal handling in Jobs.py

Bill Deegan bill at baddogconsulting.com
Wed Oct 6 21:31:39 EDT 2021


I see this
"None means that the previous signal handler was not installed from Python."

In the docs https://docs.python.org/3/library/signal.html#signal.getsignal
-Bill

On Wed, Oct 6, 2021 at 6:29 PM Bill Deegan <bill at baddogconsulting.com>
wrote:

> Brian,
>
> O.k. so if I understand correctly you have a signal handler registerer
> outside SCons (in C code for example), and when this is the case python's
> signal.signal() will return None?
> And then when SCons tries to reset it back to it's original setting
> attempts to set it to None and that causes Python to crash?
>
> -Bill
> SCons Co-Manager
>
> On Wed, Oct 6, 2021 at 5:10 PM Brian Quistorff <brian at quistorff.com>
> wrote:
>
>> Hello,
>>
>> Thanks all for the wonderful tool.
>>
>> My scons crashes in situations where there is a signal handler registered
>> from "outside Python" (the phrase used in the Python docs for
>> signal.signal). This happens for me when I run scons from inside Stata (a
>> stats program), which embeds Python, and sets up a signal handler. I think
>> this could also happen if one runs scons from a Python environment where a
>> compiled plugin registered a signal handler. I tracked the problem to
>> Jobs.py, where _setup_sig_handler() retrieves the previous signal handler
>> (signal.signal() returns None in this case) and then in
>> _reset_sig_handler() it tries to the set the signal handler to this
>> previous (None) value. None is not allowed and this causes a crash.
>>
>> I've coded up a patch that resets the signal handler to signal.SIG_DFL
>> (the default handler) when the previous one was None and warns the user
>> that this is happening. I'm looking for feedback, to see if this is an
>> acceptable fix, and if/how I should proceed on GitHub.
>>
>> Thanks,
>> Brian
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20211006/0c3cad1f/attachment.htm>


More information about the Scons-users mailing list