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.