Message 346468 - Python tracker

Message346468

Author zwol
Recipients zwol
Date 2019-06-25.01:09:57
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1561424997.44.0.201874439202.issue37395@roundup.psfhosted.org>
In-reply-to
Content
There are several existing issues (e.g. #18748 and #35866) where at least part of the problem is that GNU libc tried to dlopen() `libgcc_s.so` at a moment when that's not safe, e.g. during thread or process shutdown.  This converts a recoverable error into a deadlock or crash.

This is arguably a bug in glibc, but Python can easily work around it by linking the core interpreter (the `python` executable and/or `libpython.so`) with libgcc_s at build time (`-lgcc_s`) on Linux.  It will then be loaded already if and when it's needed, and glibc won't try to load it on demand.

In order for this to be 100% reliable, it needs to be at least theoretically possible for code within the interpreter to call a function defined in libgcc_s.so. `_Unwind_Backtrace` is probably the most practical option.  (See https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib--unwind-backtrace.html .)
History
Date User Action Args
2019-06-25 01:09:57zwolsetrecipients: + zwol
2019-06-25 01:09:57zwolsetmessageid: <1561424997.44.0.201874439202.issue37395@roundup.psfhosted.org>
2019-06-25 01:09:57zwollinkissue37395 messages
2019-06-25 01:09:57zwolcreate