https://github.com/python/cpython/commit/8a09b511a0cccc39973135b405ca0eea01c73f67 commit: 8a09b511a0cccc39973135b405ca0eea01c73f67 branch: 3.13 author: Stan Ulbrych <[email protected]> committer: serhiy-storchaka <[email protected]> date: 2026-01-12T20:07:34+02:00 summary:
[3.13] gh-141536: Fix a crash when running test_capi *after* test_code in the same process (GH-141537) (GH-143625) (cherry picked from commit b2827de18fe88152dc38c1aa76c39b69ef59cb6f) Co-authored-by: T. Wouters <[email protected]> files: M Lib/test/test_code.py diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index 6f300a252dad45..6ea6c486de5339 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -143,7 +143,7 @@ check_impl_detail, requires_debug_ranges, gc_collect, Py_GIL_DISABLED, suppress_immortalization, - skip_if_suppress_immortalization) + skip_if_suppress_immortalization, late_deletion) from test.support.script_helper import assert_python_ok from test.support import threading_helper, import_helper from test.support.bytecode_helper import instructions_with_positions @@ -844,6 +844,11 @@ def myfree(ptr): FREE_FUNC = freefunc(myfree) FREE_INDEX = RequestCodeExtraIndex(FREE_FUNC) + # Make sure myfree sticks around at least as long as the interpreter, + # since we (currently) can't unregister the function and leaving a + # dangling pointer will cause a crash on deallocation of code objects if + # something else uses co_extras, like test_capi.test_misc. + late_deletion(myfree) class CoExtra(unittest.TestCase): def get_func(self): _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
