Open
Description
Windows reproducer on main branch: run .\PCbuild\amd64\python_d.exe -m test test__xxsubinterpreters -F
and leave it running. If by run 100 nothing crashes, cancel and re-run again until you get a segfault.
Traceback:
Thread 0x000022ec (most recent call first):
File "D:\Ken\Documents\GitHub\cpython\Lib\test\test__xxsubinterpreters.py", line 788 in setUp
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\case.py", line 576 in _callSetUp
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\case.py", line 619 in run
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\case.py", line 678 in __call__
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 122 in run
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 84 in __call__
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 122 in run
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 84 in __call__
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 122 in run
File "D:\Ken\Documents\GitHub\cpython\Lib\unittest\suite.py", line 84 in __call__
File "D:\Ken\Documents\GitHub\cpython\Lib\test\support\testresult.py", line 140 in run
File "D:\Ken\Documents\GitHub\cpython\Lib\test\support\__init__.py", line 1099 in _run_suite
File "D:\Ken\Documents\GitHub\cpython\Lib\test\support\__init__.py", line 1225 in run_unittest
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\runtest.py", line 281 in _test_module
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\runtest.py", line 317 in _runtest_inner2
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\runtest.py", line 360 in _runtest_inner
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\runtest.py", line 235 in _runtest
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\runtest.py", line 265 in runtest
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\main.py", line 456 in run_tests_sequential
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\main.py", line 574 in run_tests
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\main.py", line 752 in _main
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\main.py", line 711 in main
File "D:\Ken\Documents\GitHub\cpython\Lib\test\libregrtest\main.py", line 775 in main
File "D:\Ken\Documents\GitHub\cpython\Lib\test\__main__.py", line 2 in <module>
File "D:\Ken\Documents\GitHub\cpython\Lib\runpy.py", line 88 in _run_code
File "D:\Ken\Documents\GitHub\cpython\Lib\runpy.py", line 198 in _run_module_as_main
Somehow after calling __xxsubinterpreters.create
: in drop_gil
the &ceval2->gil_drop_request
is non-NULL but invalid, so when we try to _Py_atomic_load
load from that address it segfaults.
I have my suspicions it's due to swapping of GIL states but this is incredibly hard to debug because the race condition sometimes triggers when I run the test 4 times in a row, and sometimes doesn't trigger after 2 hours of continuous running.
Metadata
Metadata
Assignees
Projects
Status
Todo