-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
Closed as not planned
Closed as not planned
Copy link
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-free-threadingtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
Description
Crash report
What happened?
It's possible to get some different aborts and a very rare segfault (mostly going through Py_EndInterpreter) in a free-threading built by running the code below or some variations of it.
Sorry about the very long MRE, it's reduced from 72k lines and a bit fickle.
MRE
Details
import asyncio
import time
import _interpreters
async_tasks = []
target_func = _interpreters.create
def call_create():
_interpreters.create("F\x9E4\xDB\xEF")
async_tasks.append(call_create)
def call_destroy():
_interpreters.destroy(-16)
async_tasks.append(call_destroy)
def call_create():
time.sleep(0.000615)
_interpreters.create()
_interpreters.create()
_interpreters.create()
_interpreters.create()
async_tasks.append(call_create)
def call_run_string():
time.sleep(0.000948)
_interpreters.run_string(bytearray(b"test"))
async_tasks.append(call_run_string)
async_tasks.append(call_run_string)
async_tasks.append(call_run_string)
async_tasks.append(call_run_string)
def call_destroy():
interpreters.destroy([[[[[[[[[[[[[[]]]]]]]]]]]]]])
async_tasks.append(call_destroy)
def call_create():
target_func()
async_tasks.append(call_create)
# Not sure why this needs to be in this format, but it needs.
target_func = _interpreters.destroy
def call_destroy():
target_func(True)
async_tasks.append(call_destroy)
def call_call():
_interpreters.call("", None, Exception('fuzzer_generated_exception'))
async_tasks.append(call_call)
def call_exec():
_interpreters.exec("\u0557\u41CF\u8A6C\u9FAB\u7FA2\u60D3\u3831\u1636\uDA10")
async_tasks.append(call_exec)
def call_create():
time.sleep(0.000177)
_interpreters.create("")
async_tasks.append(call_create)
def call_list_all():
time.sleep(0.000742)
_interpreters.create()
async_tasks.append(call_list_all)
def call_capture_exception():
time.sleep(0.000926)
_interpreters.create()
async_tasks.append(call_capture_exception)
def call_create():
time.sleep(0.000210)
_interpreters.create()
async_tasks.append(call_create)
def call_capture_exception():
time.sleep(0.000991)
target_func()
async_tasks.append(call_capture_exception)
def call_decref():
time.sleep(0.000572)
_interpreters.decref("")
async_tasks.append(call_decref)
def call_get_main():
time.sleep(0.000184)
target_func()
async_tasks.append(call_get_main)
def call_incref():
time.sleep(0.000586)
_interpreters.incref("")
async_tasks.append(call_incref)
def call_is_running():
time.sleep(0.000922)
_interpreters.is_running(-937.19)
async_tasks.append(call_is_running)
def call_get_main():
time.sleep(0.000091)
_interpreters.get_main()
async_tasks.append(call_get_main)
def call_set___main___attrs():
time.sleep(0.000137)
_interpreters.set___main___attrs(None, -36.8)
async_tasks.append(call_set___main___attrs)
def call_is_running():
time.sleep(0.000864)
_interpreters.is_running("")
async_tasks.append(call_is_running)
def call_destroy():
time.sleep(0.000977)
_interpreters.destroy(b"")
async_tasks.append(call_destroy)
def call_incref():
time.sleep(0.000404)
_interpreters.incref()
async_tasks.append(call_incref)
def call_get_main():
time.sleep(0.000479)
tar_interpreters.get_main()
async_tasks.append(call_get_main)
def call_is_running():
time.sleep(0.000923)
_interpreters.is_running(tricky_module2)
async_tasks.append(call_is_running)
def call_incref():
time.sleep(0.000468)
_interpreters.incref(4541380)
async_tasks.append(call_incref)
def call_decref():
time.sleep(0.000494)
_interpreters.decref(dict[Counter])
async_tasks.append(call_decref)
def call_whence():
time.sleep(0.000543)
_interpreters.whence(None)
async_tasks.append(call_whence)
def call_new_config():
time.sleep(0.000173)
_interpreters.new_config(bytearray(b"test"), lambda *args, **kwargs: 1/0)
async_tasks.append(call_new_config)
def call_call():
time.sleep(0.000803)
_interpreters.call("\udbff\udfff", None, "\xCC\x93", "")
async_tasks.append(call_call)
def call_list_all():
time.sleep(0.000012)
_interpreters.list_all()
async_tasks.append(call_list_all)
def call_incref():
time.sleep(0.000373)
_interpreters.incref(None)
async_tasks.append(call_incref)
def call_get_config():
time.sleep(0.000913)
_interpreters.get_config(9.881)
async_tasks.append(call_get_config)
def call_get_config():
time.sleep(0.000258)
_interpreters.get_config(-1000.0)
async_tasks.append(call_get_config)
def call_new_config():
time.sleep(0.000359)
_interpreters.new_config("")
async_tasks.append(call_new_config)
def call_capture_exception():
time.sleep(0.000408)
_interpreters.capture_exception()
async_tasks.append(call_capture_exception)
def call_destroy():
time.sleep(0.000924)
_interpreters.destroy(True)
_interpreters.create()
async_tasks.append(call_destroy)
def call_run_func():
time.sleep(0.000643)
interpreters.run_func("\x00", "")
async_tasks.append(call_run_func)
print("--- Running Fuzzer Async Tasks ---")
async def main_async_fuzzer_tasks():
task_objects = [asyncio.to_thread(func) for func in async_tasks]
await asyncio.gather(*task_objects, return_exceptions=True)
runner = asyncio.Runner()
runner.run(main_async_fuzzer_tasks())Backtraces
Details
Backtrace 1:
python: Python/errors.c:1662: void format_unraisable_v(const char *, struct __va_list_tag *, PyObject *): Assertion `exc_type != NULL' failed.
Thread 338 "asyncio_6" received signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
#3 0x00007ffff7c45e2e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff7c28888 in __GI_abort () at ./stdlib/abort.c:77
#5 0x00007ffff7c287f0 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:118
#6 0x00007ffff7c3c19f in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:127
#7 0x0000555555f62ce4 in format_unraisable_v (format=format@entry=0x5555564b52c0 <str> "Exception ignored on threading shutdown", va=va@entry=0x7bff6cb704a0, obj=obj@entry=0x0) at Python/errors.c:1662
#8 0x0000555555f6125f in PyErr_FormatUnraisable (format=0x5555564b52c0 <str> "Exception ignored on threading shutdown") at Python/errors.c:1769
#9 0x0000555556033ae2 in wait_for_thread_shutdown (tstate=0x7e8ff8a02210) at Python/pylifecycle.c:3615
#10 make_pre_finalization_calls (tstate=tstate@entry=0x7e8ff8a02210, subinterpreters=subinterpreters@entry=0) at Python/pylifecycle.c:2106
#11 0x00005555560334d6 in Py_EndInterpreter (tstate=tstate@entry=0x7e8ff8a02210) at Python/pylifecycle.c:2588
#12 0x0000555555f53cca in _PyXI_EndInterpreter (interp=interp@entry=0x7bfff51c2840, tstate=0x7e8ff8a02210, tstate@entry=0x0, p_save_tstate=p_save_tstate@entry=0x0) at Python/crossinterp.c:3292
#13 0x00007ffff753ecef in _interpreters_destroy_impl (module=0x7bffb43297f0, id=0x5555566e2ae0 <_Py_TrueStruct>, restricted=0) at ./Modules/_interpretersmodule.c:950
#14 _interpreters_destroy (module=<optimized out>, args=0x7bff6dd18068, nargs=<optimized out>, kwnames=0x0) at ./Modules/clinic/_interpretersmodule.c.h:162
#15 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb4b9e9b0, args=args@entry=0x7bff6dd18068, nargsf=nargsf@entry=9223372036854775809, kwnames=kwnames@entry=0x0) at Objects/methodobject.c:465
#16 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff8999210, callable=0x7bffb4b9e9b0, args=0x7bff6dd18068, nargsf=9223372036854775809, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#17 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff89fd5f0, total_args=total_args@entry=1, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff89fd580,
this_instr=0x7bff981e16e8, tstate=0x7e8ff8999210) at Python/ceval.c:1097
#18 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#19 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff8999210, frame=0x7e8ff89fd580, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#20 _PyEval_Vector (tstate=0x7e8ff8999210, func=0x7bffbc1cf190, locals=0x0, args=0x7bffc83b06a8, argcount=0, kwnames=0x0) at Python/ceval.c:2542
#21 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff8999210, callable=0x7bffbc1cf190, args=0x7bff6dd1c6c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#22 context_run (self=0x7bffc83b08b0, args=args@entry=0x7bffc83b06a0, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#23 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7bffb6f7bae0, args=0x7bffc83b06a0, nargsf=1, kwnames=0x0) at Objects/methodobject.c:465
#24 0x00005555562a65f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff8999210, callable=0x7bffb6f7bae0, args=args@entry=0x7bffc83b06a0, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:136
#25 0x00005555562ac4c5 in partial_vectorcall (self=self@entry=0x7bffb7028110, args=args@entry=0x555556907810 <_PyRuntime+172496>, nargsf=0, kwnames=kwnames@entry=0x0) at ./Modules/_functoolsmodule.c:390
#26 0x0000555555aab83f in _PyVectorcall_Call (tstate=<optimized out>, func=<optimized out>, callable=<optimized out>, tuple=0x5555569077e0 <_PyRuntime+172448>, kwargs=<optimized out>) at Objects/call.c:273
#27 0x0000555555eaa594 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:2534
#28 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff8999210, frame=0x7e8ff89fd328, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#29 _PyEval_Vector (tstate=0x7e8ff8999210, func=0x7bffb8620e10, locals=0x0, args=0x7bff6cc1d320, argcount=1, kwnames=0x0) at Python/ceval.c:2542
#30 0x0000555555ab53f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff8999210, callable=callable@entry=0x7bffb8620e10, args=0x7bff6cc1d320, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:136
#31 0x0000555555ab2aea in method_vectorcall (method=0x7bff98390070, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/classobject.c:73
#32 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff8999210, callable=0x7bff98390070, args=0x7bff6dd1c6c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#33 context_run (self=0x7bffb7008710, args=0x7bff6dd1a950, nargs=1, kwnames=0x0) at Python/context.c:722
#34 0x0000555555e8501a in _PyCallMethodDescriptorFastWithKeywords_StackRefSteal (callable=..., meth=meth@entry=0x555556712e60 <PyContext_methods+160>, self=0x7bffb7008710, arguments=0x7e8ff89fd2f8, total_args=total_args@entry=2)
at Python/ceval.c:1248
#35 0x0000555555eb41c6 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:3470
#36 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff8999210, frame=0x7e8ff89fd220, throwflag=0) at ./Include/internal/pycore_ceval.h:119Backtrace 2:
python: ./Modules/atexitmodule.c:106: void atexit_callfuncs(struct atexit_state *): Assertion `state->callbacks != NULL' failed.
Thread 9 "asyncio_7" received signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
#3 0x00007ffff7c45e2e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff7c28888 in __GI_abort () at ./stdlib/abort.c:77
#5 0x00007ffff7c287f0 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:118
#6 0x00007ffff7c3c19f in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:127
#7 0x0000555556130cf5 in atexit_callfuncs (state=0x7bfff51c52b0) at ./Modules/atexitmodule.c:106
#8 0x0000555556033bdc in make_pre_finalization_calls (tstate=tstate@entry=0x7e8ff7292210, subinterpreters=subinterpreters@entry=0) at Python/pylifecycle.c:2121
#9 0x00005555560334d6 in Py_EndInterpreter (tstate=tstate@entry=0x7e8ff7292210) at Python/pylifecycle.c:2588
#10 0x0000555555f53cca in _PyXI_EndInterpreter (interp=interp@entry=0x7bfff51c2840, tstate=0x7e8ff7292210, tstate@entry=0x0, p_save_tstate=p_save_tstate@entry=0x0) at Python/crossinterp.c:3292
#11 0x00007ffff753ecef in _interpreters_destroy_impl (module=0x7bffb5d67bd0, id=0x5555566e2ae0 <_Py_TrueStruct>, restricted=0) at ./Modules/_interpretersmodule.c:950
#12 _interpreters_destroy (module=<optimized out>, args=0x7bffabab4fc8, nargs=<optimized out>, kwnames=0x0) at ./Modules/clinic/_interpretersmodule.c.h:162
#13 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb599e780, args=args@entry=0x7bffabab4fc8, nargsf=nargsf@entry=9223372036854775809, kwnames=kwnames@entry=0x0) at Objects/methodobject.c:465
#14 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff726a210, callable=0x7bffb599e780, args=0x7bffabab4fc8, nargsf=9223372036854775809, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#15 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff728d5f0, total_args=total_args@entry=1, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff728d580,
this_instr=0x7bffd8190e28, tstate=0x7e8ff726a210) at Python/ceval.c:1097
#16 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#17 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff726a210, frame=0x7e8ff728d580, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#18 _PyEval_Vector (tstate=0x7e8ff726a210, func=0x7bffb597a1f0, locals=0x0, args=0x7bffb5d5f768, argcount=0, kwnames=0x0) at Python/ceval.c:2542
#19 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff726a210, callable=0x7bffb597a1f0, args=0x7bffabab96c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#20 context_run (self=0x7bffb5d5f370, args=args@entry=0x7bffb5d5f760, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#21 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7bffb67fa880, args=0x7bffb5d5f760, nargsf=1, kwnames=0x0) at Objects/methodobject.c:465
#22 0x00005555562a65f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff726a210, callable=0x7bffb67fa880, args=args@entry=0x7bffb5d5f760, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:136
#23 0x00005555562ac4c5 in partial_vectorcall (self=self@entry=0x7bffb5d42d90, args=args@entry=0x555556907810 <_PyRuntime+172496>, nargsf=0, kwnames=kwnames@entry=0x0) at ./Modules/_functoolsmodule.c:390
#24 0x0000555555aab83f in _PyVectorcall_Call (tstate=<optimized out>, func=<optimized out>, callable=<optimized out>, tuple=0x5555569077e0 <_PyRuntime+172448>, kwargs=<optimized out>) at Objects/call.c:273
#25 0x0000555555eaa594 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:2534
#26 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff726a210, frame=0x7e8ff728d328, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#27 _PyEval_Vector (tstate=0x7e8ff726a210, func=0x7bffb5b0bfb0, locals=0x0, args=0x7bffaa9bc820, argcount=1, kwnames=0x0) at Python/ceval.c:2542
#28 0x0000555555ab53f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff726a210, callable=callable@entry=0x7bffb5b0bfb0, args=0x7bffaa9bc820, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:136
#29 0x0000555555ab2aea in method_vectorcall (method=0x7bffd80c0070, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/classobject.c:73
#30 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff726a210, callable=0x7bffd80c0070, args=0x7bffabab96c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#31 context_run (self=0x7bffb637bef0, args=args@entry=0x7bffabab7950, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#32 0x0000555555ada76d in method_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb40a8580, args=args@entry=0x7bffabab7948, nargsf=nargsf@entry=9223372036854775810, kwnames=kwnames@entry=0x0) at Objects/descrobject.c:421
#33 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff726a210, callable=0x7bffb40a8580, args=0x7bffabab7948, nargsf=9223372036854775810, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#34 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff728d2f8, total_args=total_args@entry=2, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff728d298,
this_instr=0x7bffd80201fc, tstate=0x7e8ff726a210) at Python/ceval.c:1097
#35 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#36 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff726a210, frame=0x7e8ff728d220, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#37 _PyEval_Vector (tstate=0x7e8ff726a210, func=0x7bffb5b0c090, locals=0x0, args=0x7bffaa9b9120, argcount=1, kwnames=0x0) at Python/ceval.c:2542Backtrace 3:
python: Python/pystate.c:1804: void tstate_delete_common(PyThreadState *, int): Assertion `tstate->_status.cleared && !tstate->_status.finalized' failed.
Thread 11 "asyncio_9" received signal SIGABRT, Aborted.
[Switching to Thread 0x7bffa94a56c0 (LWP 2002300)]
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
#3 0x00007ffff7c45e2e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff7c28888 in __GI_abort () at ./stdlib/abort.c:77
#5 0x00007ffff7c287f0 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:118
#6 0x00007ffff7c3c19f in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:127
#7 0x000055555608020f in tstate_delete_common (tstate=tstate@entry=0x7bfff51def08, release_gil=release_gil@entry=0) at Python/pystate.c:1804
#8 0x000055555607b5a7 in zapthreads (interp=interp@entry=0x7bfff51a6840) at Python/pystate.c:1888
#9 0x000055555607b1e8 in PyInterpreterState_Delete (interp=0x7bfff51a6840) at Python/pystate.c:926
#10 0x0000555555f53cca in _PyXI_EndInterpreter (interp=interp@entry=0x7bfff51a6840, tstate=0x7e8ff70b2210, tstate@entry=0x0, p_save_tstate=p_save_tstate@entry=0x0) at Python/crossinterp.c:3292
#11 0x00007ffff753ecef in _interpreters_destroy_impl (module=0x7bffb56e4a70, id=0x5555566e2ae0 <_Py_TrueStruct>, restricted=0) at ./Modules/_interpretersmodule.c:950
#12 _interpreters_destroy (module=<optimized out>, args=0x7bffa94a0fc8, nargs=<optimized out>, kwnames=0x0) at ./Modules/clinic/_interpretersmodule.c.h:162
#13 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb590eef0, args=args@entry=0x7bffa94a0fc8, nargsf=nargsf@entry=9223372036854775809, kwnames=kwnames@entry=0x0) at Objects/methodobject.c:465
#14 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff7085210, callable=0x7bffb590eef0, args=0x7bffa94a0fc8, nargsf=9223372036854775809, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#15 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff70ad5e8, total_args=total_args@entry=1, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff70ad580,
this_instr=0x7bffce0502a6, tstate=0x7e8ff7085210) at Python/ceval.c:1097
#16 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#17 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7085210, frame=0x7e8ff70ad580, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#18 _PyEval_Vector (tstate=0x7e8ff7085210, func=0x7bffb61b1c10, locals=0x0, args=0x7bffb5f7fe88, argcount=0, kwnames=0x0) at Python/ceval.c:2542
#19 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff7085210, callable=0x7bffb61b1c10, args=0x7bffa94a56c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#20 context_run (self=0x7bffb5e77e10, args=args@entry=0x7bffb5f7fe80, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#21 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7bffb61e89e0, args=0x7bffb5f7fe80, nargsf=1, kwnames=0x0) at Objects/methodobject.c:465
#22 0x00005555562a65f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff7085210, callable=0x7bffb61e89e0, args=args@entry=0x7bffb5f7fe80, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:136
#23 0x00005555562ac4c5 in partial_vectorcall (self=self@entry=0x7bffb59c3a90, args=args@entry=0x555556907810 <_PyRuntime+172496>, nargsf=0, kwnames=kwnames@entry=0x0) at ./Modules/_functoolsmodule.c:390
#24 0x0000555555aab83f in _PyVectorcall_Call (tstate=<optimized out>, func=<optimized out>, callable=<optimized out>, tuple=0x5555569077e0 <_PyRuntime+172448>, kwargs=<optimized out>) at Objects/call.c:273
#25 0x0000555555eaa594 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:2534
#26 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7085210, frame=0x7e8ff70ad328, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#27 _PyEval_Vector (tstate=0x7e8ff7085210, func=0x7bffb449bfb0, locals=0x0, args=0x7bffa83a8f20, argcount=1, kwnames=0x0) at Python/ceval.c:2542
#28 0x0000555555ab53f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff7085210, callable=callable@entry=0x7bffb449bfb0, args=0x7bffa83a8f20, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:136
#29 0x0000555555ab2aea in method_vectorcall (method=0x7bffce0e0070, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/classobject.c:73
#30 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff7085210, callable=0x7bffce0e0070, args=0x7bffa94a56c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#31 context_run (self=0x7bffb57e93d0, args=args@entry=0x7bffa94a3950, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#32 0x0000555555ada76d in method_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb40a8580, args=args@entry=0x7bffa94a3948, nargsf=nargsf@entry=9223372036854775810, kwnames=kwnames@entry=0x0) at Objects/descrobject.c:421
#33 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff7085210, callable=0x7bffb40a8580, args=0x7bffa94a3948, nargsf=9223372036854775810, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#34 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff70ad2f8, total_args=total_args@entry=2, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff70ad298,
this_instr=0x7bffce0201fc, tstate=0x7e8ff7085210) at Python/ceval.c:1097
#35 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#36 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7085210, frame=0x7e8ff70ad220, throwflag=0) at ./Include/internal/pycore_ceval.h:119Backtrace 4 (segfault):
python: Python/pystate.c:1804: void tstate_delete_common(PyThreadState *, int): Assertion `tstate->_status.cleared && !tstate->_status.finalized' failed.
Thread 14 "asyncio_12" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7bffa5b876c0 (LWP 2062131)]
PyDict_GetItemWithError (op=0x0, key=0x5555568fefa0 <_PyRuntime+137568>) at Objects/dictobject.c:2503
2503 if (!PyDict_Check(op)) {
#0 PyDict_GetItemWithError (op=0x0, key=0x5555568fefa0 <_PyRuntime+137568>) at Objects/dictobject.c:2503
#1 0x0000555555c74fba in get_type_attr_as_size (tp=0x5555572d64c0 <UnraisableHookArgsType>, name=0x5555568fefa0 <_PyRuntime+137568>) at Objects/structseq.c:30
#2 PyStructSequence_New (type=0x5555572d64c0 <UnraisableHookArgsType>) at Objects/structseq.c:64
#3 0x0000555555f61823 in make_unraisable_hook_args (tstate=0x7bfff51faf08, exc_type=0x5555566eee80 <_PyExc_RuntimeError>, exc_value=0x7bffda020090, exc_tb=0x0, err_msg=0x7bffda010110, obj=0x0) at Python/errors.c:1412
#4 format_unraisable_v (format=format@entry=0x5555564b52c0 <str> "Exception ignored on threading shutdown", va=va@entry=0x7bffa49911a0, obj=obj@entry=0x0) at Python/errors.c:1695
#5 0x0000555555f6125f in PyErr_FormatUnraisable (format=0x5555564b52c0 <str> "Exception ignored on threading shutdown") at Python/errors.c:1769
#6 0x0000555556033ae2 in wait_for_thread_shutdown (tstate=0x7bfff51faf08) at Python/pylifecycle.c:3615
#7 make_pre_finalization_calls (tstate=tstate@entry=0x7bfff51faf08, subinterpreters=subinterpreters@entry=0) at Python/pylifecycle.c:2106
#8 0x00005555560334d6 in Py_EndInterpreter (tstate=tstate@entry=0x7bfff51faf08) at Python/pylifecycle.c:2588
#9 0x0000555555f53cca in _PyXI_EndInterpreter (interp=interp@entry=0x7bfff51c2840, tstate=0x7bfff51faf08, tstate@entry=0x0, p_save_tstate=p_save_tstate@entry=0x0) at Python/crossinterp.c:3292
#10 0x00007ffff75a1cef in _interpreters_destroy_impl (module=0x7bffb57c1eb0, id=0x5555566e2ae0 <_Py_TrueStruct>, restricted=0) at ./Modules/_interpretersmodule.c:950
#11 _interpreters_destroy (module=<optimized out>, args=0x7bffa5b82fc8, nargs=<optimized out>, kwnames=0x0) at ./Modules/clinic/_interpretersmodule.c.h:162
#12 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb52680b0, args=args@entry=0x7bffa5b82fc8, nargsf=nargsf@entry=9223372036854775809, kwnames=kwnames@entry=0x0) at Objects/methodobject.c:465
#13 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff70c6210, callable=0x7bffb52680b0, args=0x7bffa5b82fc8, nargsf=9223372036854775809, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#14 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff70fd5e8, total_args=total_args@entry=1, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff70fd580,
this_instr=0x7bffd8090194, tstate=0x7e8ff70c6210) at Python/ceval.c:1097
#15 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#16 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff70c6210, frame=0x7e8ff70fd580, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#17 _PyEval_Vector (tstate=0x7e8ff70c6210, func=0x7bffb58241b0, locals=0x0, args=0x7bffb5d31b48, argcount=0, kwnames=0x0) at Python/ceval.c:2542
#18 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff70c6210, callable=0x7bffb58241b0, args=0xf7ff4932245, nargsf=0, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#19 context_run (self=0x7bffb5d31e10, args=args@entry=0x7bffb5d31b40, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#20 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7bffb5d50710, args=0x7bffb5d31b40, nargsf=1, kwnames=0x0) at Objects/methodobject.c:465
#21 0x00005555562a65f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff70c6210, callable=0x7bffb5d50710, args=args@entry=0x7bffb5d31b40, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:136
#22 0x00005555562ac4c5 in partial_vectorcall (self=self@entry=0x7bffb58ca690, args=args@entry=0x555556907810 <_PyRuntime+172496>, nargsf=0, kwnames=kwnames@entry=0x0) at ./Modules/_functoolsmodule.c:390
#23 0x0000555555aab83f in _PyVectorcall_Call (tstate=<optimized out>, func=<optimized out>, callable=<optimized out>, tuple=0x5555569077e0 <_PyRuntime+172448>, kwargs=<optimized out>) at Objects/call.c:273
#24 0x0000555555eaa594 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:2534
#25 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff70c6210, frame=0x7e8ff70fd328, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#26 _PyEval_Vector (tstate=0x7e8ff70c6210, func=0x7bffb524f0b0, locals=0x0, args=0x7bffa4a8a820, argcount=1, kwnames=0x0) at Python/ceval.c:2542Backtrace 5:
python: Python/pystate.c:262: void unbind_gilstate_tstate(PyThreadState *): Assertion `tstate == gilstate_get()' failed.
python: Python/pylifecycle.c:2078: int interp_has_atexit_callbacks(PyInterpreterState *): Assertion `interp->atexit.callbacks != NULL' failed.
Thread 5 "asyncio_3" received signal SIGABRT, Aborted.
[Switching to Thread 0x7bffb06e16c0 (LWP 2098336)]
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
#3 0x00007ffff7c45e2e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff7c28888 in __GI_abort () at ./stdlib/abort.c:77
#5 0x00007ffff7c287f0 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:118
#6 0x00007ffff7c3c19f in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:127
#7 0x00005555560344cf in interp_has_atexit_callbacks (interp=0x7bfff51c2840) at Python/pylifecycle.c:2078
#8 make_pre_finalization_calls (tstate=tstate@entry=0x7bfff51faf08, subinterpreters=subinterpreters@entry=0) at Python/pylifecycle.c:2150
#9 0x00005555560334d6 in Py_EndInterpreter (tstate=tstate@entry=0x7bfff51faf08) at Python/pylifecycle.c:2588
#10 0x0000555555f53cca in _PyXI_EndInterpreter (interp=interp@entry=0x7bfff51c2840, tstate=0x7bfff51faf08, tstate@entry=0x0, p_save_tstate=p_save_tstate@entry=0x0) at Python/crossinterp.c:3292
#11 0x00007ffff75a1cef in _interpreters_destroy_impl (module=0x7bffb5831e10, id=0x5555566e2ae0 <_Py_TrueStruct>, restricted=0) at ./Modules/_interpretersmodule.c:950
#12 _interpreters_destroy (module=<optimized out>, args=0x7bffb06dcfc8, nargs=<optimized out>, kwnames=0x0) at ./Modules/clinic/_interpretersmodule.c.h:162
#13 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb52d7a20, args=args@entry=0x7bffb06dcfc8, nargsf=nargsf@entry=9223372036854775809, kwnames=kwnames@entry=0x0) at Objects/methodobject.c:465
#14 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff7008210, callable=0x7bffb52d7a20, args=0x7bffb06dcfc8, nargsf=9223372036854775809, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#15 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff702b5e8, total_args=total_args@entry=1, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff702b580,
this_instr=0x7bffbe0903c4, tstate=0x7e8ff7008210) at Python/ceval.c:1097
#16 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#17 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7008210, frame=0x7e8ff702b580, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#18 _PyEval_Vector (tstate=0x7e8ff7008210, func=0x7bffb5bc3030, locals=0x0, args=0x7bffb5c7a248, argcount=0, kwnames=0x0) at Python/ceval.c:2542
#19 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff7008210, callable=0x7bffb5bc3030, args=0x7bffb06e16c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#20 context_run (self=0x7bffb5c7a510, args=args@entry=0x7bffb5c7a240, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#21 0x0000555555bf1e3c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7bffb5c8ac70, args=0x7bffb5c7a240, nargsf=1, kwnames=0x0) at Objects/methodobject.c:465
#22 0x00005555562a65f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff7008210, callable=0x7bffb5c8ac70, args=args@entry=0x7bffb5c7a240, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:136
#23 0x00005555562ac4c5 in partial_vectorcall (self=self@entry=0x7bffb5069e10, args=args@entry=0x555556907810 <_PyRuntime+172496>, nargsf=0, kwnames=kwnames@entry=0x0) at ./Modules/_functoolsmodule.c:390
#24 0x0000555555aab83f in _PyVectorcall_Call (tstate=<optimized out>, func=<optimized out>, callable=<optimized out>, tuple=0x5555569077e0 <_PyRuntime+172448>, kwargs=<optimized out>) at Objects/call.c:273
#25 0x0000555555eaa594 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:2534
#26 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7008210, frame=0x7e8ff702b328, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#27 _PyEval_Vector (tstate=0x7e8ff7008210, func=0x7bffb527f0b0, locals=0x0, args=0x7bffaf5e4820, argcount=1, kwnames=0x0) at Python/ceval.c:2542
#28 0x0000555555ab53f0 in _PyObject_VectorcallTstate (tstate=tstate@entry=0x7e8ff7008210, callable=callable@entry=0x7bffb527f0b0, args=0x7bffaf5e4820, nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:136
#29 0x0000555555ab2aea in method_vectorcall (method=0x7bffbe0c0070, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/classobject.c:73
#30 0x0000555555f3ebc3 in _PyObject_VectorcallTstate (tstate=0x7e8ff7008210, callable=0x7bffbe0c0070, args=0x7bffb06e16c0, nargsf=22, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#31 context_run (self=0x7bffb5bad510, args=args@entry=0x7bffb06df950, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0) at Python/context.c:722
#32 0x0000555555ada76d in method_vectorcall_FASTCALL_KEYWORDS (func=func@entry=0x7bffb40a8580, args=args@entry=0x7bffb06df948, nargsf=nargsf@entry=9223372036854775810, kwnames=kwnames@entry=0x0) at Objects/descrobject.c:421
#33 0x0000555555aa9040 in _PyObject_VectorcallTstate (tstate=0x7e8ff7008210, callable=0x7bffb40a8580, args=0x7bffb06df948, nargsf=9223372036854775810, kwnames=0x0) at ./Include/internal/pycore_call.h:136
#34 0x0000555555e831cb in _Py_VectorCallInstrumentation_StackRefSteal (callable=..., arguments=arguments@entry=0x7e8ff702b2f8, total_args=total_args@entry=2, kwnames=kwnames@entry=..., call_instrumentation=false, frame=0x7e8ff702b298,
this_instr=0x7bffbe0201fc, tstate=0x7e8ff7008210) at Python/ceval.c:1097
#35 0x0000555555ebe861 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/generated_cases.c.h:1680
#36 0x0000555555e82094 in _PyEval_EvalFrame (tstate=0x7e8ff7008210, frame=0x7e8ff702b220, throwflag=0) at ./Include/internal/pycore_ceval.h:119
#37 _PyEval_Vector (tstate=0x7e8ff7008210, func=0x7bffb527f190, locals=0x0, args=0x7bffaf5e1120, argcount=1, kwnames=0x0) at Python/ceval.c:2542Found using fusil by @vstinner.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.15.0a3+ free-threading build (heads/main:cf6758ff9eb, Dec 26 2025, 14:20:15) [Clang 21.1.2 (2ubuntu6)]
Metadata
Metadata
Assignees
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-free-threadingtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump