Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test_asyncio.test_free_threading.TestCFreeThreading.test_all_tasks_race crashes intermittently in free-threaded builds #128656

Closed
mpage opened this issue Jan 9, 2025 · 1 comment · Fixed by #128541
Labels
tests Tests in the Lib/test dir topic-asyncio topic-free-threading type-crash A hard crash of the interpreter, possibly with a core dump

Comments

@mpage
Copy link
Contributor

mpage commented Jan 9, 2025

Crash report

What happened?

test_asyncio.test_free_threading.TestCFreeThreading.test_all_tasks_race crashes intermittently in free-threaded builds. The crash is reproducible by running the test repeatedly:

> ./python -m test test_asyncio.test_free_threading --match test.test_asyncio.test_free_threading.TestCFreeThreading.test_all_tasks_race -F
Using random seed: 1718500416
0:00:00 load avg: 0.85 Run tests sequentially in a single process
0:00:00 load avg: 0.85 [  1] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  2] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  3] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  4] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  5] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  6] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  7] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  8] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [  9] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [ 10] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [ 11] test_asyncio.test_free_threading
0:00:00 load avg: 0.85 [ 12] test_asyncio.test_free_threading
0:00:01 load avg: 0.85 [ 13] test_asyncio.test_free_threading
0:00:01 load avg: 0.85 [ 14] test_asyncio.test_free_threading
0:00:01 load avg: 0.85 [ 15] test_asyncio.test_free_threading
0:00:01 load avg: 0.85 [ 16] test_asyncio.test_free_threading
Objects/object.c:578: PyObject_CallFinalizerFromDealloc: Assertion failed: PyObject_CallFinalizerFromDealloc called on object with a non-zero refcount
Enable tracemalloc to get the memory block allocation traceback

object address  : 0x200142d6020
object refcount : 1
object type     : 0x200015ecd10
object type name: _asyncio.Task
object repr     : <Task finished name='None' coro=<TestFreeThreading.test_all_tasks_race.<locals>.main.<locals>.coro() done, defined at /data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py:20> result=None>

Fatal Python error: _PyObject_AssertFailed: _PyObject_AssertFailed
Python runtime state: initialized

Thread 0x00007fbb97400640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 21 in coro

Thread 0x00007fbb97e00640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 208 in _cancel_all_tasks
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 71 in close
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 63 in __exit__
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 42 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Thread 0x00007fbb9ca00640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 208 in _cancel_all_tasks
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 71 in close
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 63 in __exit__
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 42 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Thread 0x00007fbb9d400640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/events.py", line 98 in _run
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 2026 in _run_once
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 683 in run_forever
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 712 in run_until_complete
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 127 in run
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 45 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Current thread 0x00007fbb9de00640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/events.py", line 98 in _run
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 2041 in _run_once
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 683 in run_forever
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 712 in run_until_complete
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 127 in run
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 45 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Thread 0x00007fbb9e800640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 2041 in _run_once
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 683 in run_forever
  File "/data/users/mpage/cpython/Lib/asyncio/base_events.py", line 712 in run_until_complete
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 127 in run
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 45 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Thread 0x00007fbb96000640 (most recent call first):
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 208 in _cancel_all_tasks
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 71 in close
  File "/data/users/mpage/cpython/Lib/asyncio/runners.py", line 63 in __exit__
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 42 in runner
  File "/data/users/mpage/cpython/Lib/threading.py", line 996 in run
  File "/data/users/mpage/cpython/Lib/threading.py", line 1054 in _bootstrap_inner
  File "/data/users/mpage/cpython/Lib/threading.py", line 1016 in _bootstrap

Thread 0x00007fbb94c00640 (most recent call first):
  <no Python frame>

Thread 0x00007fbb9f463740 (most recent call first):
  File "/data/users/mpage/cpython/Lib/threading.py", line 1105 in join
  File "/data/users/mpage/cpython/Lib/test/support/threading_helper.py", line 147 in start_threads
  File "/data/users/mpage/cpython/Lib/contextlib.py", line 148 in __exit__
  File "/data/users/mpage/cpython/Lib/test/test_asyncio/test_free_threading.py", line 53 in test_all_tasks_race
  File "/data/users/mpage/cpython/Lib/unittest/case.py", line 606 in _callTestMethod
  File "/data/users/mpage/cpython/Lib/unittest/case.py", line 660 in run
  File "/data/users/mpage/cpython/Lib/unittest/case.py", line 716 in __call__
  File "/data/users/mpage/cpython/Lib/unittest/suite.py", line 122 in run
  File "/data/users/mpage/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/data/users/mpage/cpython/Lib/unittest/suite.py", line 122 in run
  File "/data/users/mpage/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/data/users/mpage/cpython/Lib/test/libregrtest/testresult.py", line 148 in run
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 58 in _run_suite
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 38 in run_unittest
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 136 in test_func
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 92 in regrtest_runner
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 139 in _load_run_test
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 184 in _runtest_env_changed_exc
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 284 in _runtest
  File "/data/users/mpage/cpython/Lib/test/libregrtest/single.py", line 313 in run_single_test
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 372 in run_test
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 406 in run_tests_sequentially
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 552 in _run_tests
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 587 in run_tests
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 759 in main
  File "/data/users/mpage/cpython/Lib/test/libregrtest/main.py", line 767 in main
  File "/data/users/mpage/cpython/Lib/test/__main__.py", line 2 in <module>
  File "/data/users/mpage/cpython/Lib/runpy.py", line 88 in _run_code
  File "/data/users/mpage/cpython/Lib/runpy.py", line 198 in _run_module_as_main
Aborted (core dumped)
>

Here is the C stack trace:

(gdb) bt
#0  0x00007fbb9f28bacc in __pthread_kill_implementation () from /lib64/libc.so.6
#1  0x00007fbb9f23e686 in raise () from /lib64/libc.so.6
#2  0x00007fbb9f228833 in abort () from /lib64/libc.so.6
#3  0x00000000006f8605 in fatal_error_exit (status=<optimized out>) at Python/pylifecycle.c:3154
#4  0x00000000007037ec in fatal_error (fd=2, header=header@entry=1, prefix=prefix@entry=0x812aa0 <__func__.6> "_PyObject_AssertFailed", msg=msg@entry=0x81284f "_PyObject_AssertFailed", status=status@entry=-1)
    at Python/pylifecycle.c:3370
#5  0x0000000000703856 in _Py_FatalErrorFunc (func=func@entry=0x812aa0 <__func__.6> "_PyObject_AssertFailed", msg=msg@entry=0x81284f "_PyObject_AssertFailed") at Python/pylifecycle.c:3386
#6  0x0000000000539c83 in _PyObject_AssertFailed (obj=obj@entry=<_asyncio.Task() at remote 0x200142d6020>, expr=expr@entry=0x0,
    msg=msg@entry=0x8121a0 "PyObject_CallFinalizerFromDealloc called on object with a non-zero refcount", file=file@entry=0x812637 "Objects/object.c", line=line@entry=578,
    function=function@entry=0x812ee0 <__func__.46> "PyObject_CallFinalizerFromDealloc") at Objects/object.c:2968
#7  0x000000000053b106 in PyObject_CallFinalizerFromDealloc (self=self@entry=<_asyncio.Task() at remote 0x200142d6020>) at Objects/object.c:578
#8  0x00007fbb9efd6ed9 in TaskObj_dealloc (self=<_asyncio.Task() at remote 0x200142d6020>) at ./Modules/_asynciomodule.c:2818
#9  0x0000000000539423 in _Py_Dealloc (op=<_asyncio.Task() at remote 0x200142d6020>) at Objects/object.c:2991
#10 0x0000000000539598 in _Py_MergeZeroLocalRefcount (op=op@entry=<_asyncio.Task() at remote 0x200142d6020>) at Objects/object.c:436
#11 0x000000000055f43e in Py_DECREF (op=<_asyncio.Task() at remote 0x200142d6020>, lineno=511, filename=0x81c6e5 "Objects/setobject.c") at ./Include/refcount.h:343
#12 set_dealloc (
    self={<_asyncio.Task() at remote 0x200142d2020>, <_asyncio.Task() at remote 0x200142d4020>, <_asyncio.Task() at remote 0x200142d6020>, <_asyncio.Task() at remote 0x200142d2120>, <_asyncio.Task() at remote 0x200142d4120>, <_asyncio.Task() at remote 0x200142d6120>, <_asyncio.Task() at remote 0x200142d0220>, <_asyncio.Task() at remote 0x200142d2220>, <_asyncio.Task() at remote 0x200142d4220>, <_asyncio.Task() at remote 0x200142d6220>, <_asyncio.Task() at remote 0x200142d0320>, <_asyncio.Task() at remote 0x200142d2320>, <_asyncio.Task() at remote 0x200142d4320>, <_asyncio.Task() at remote 0x200142d6320>, <_asyncio.Task() at remote 0x200142d0420>, <_asyncio.Task() at remote 0x200142d2420>, <_asyncio.Task() at remote 0x200142d4420>, <_asyncio.Task() at remote 0x200142d6420>, <_asyncio.Task() at remote 0x200142d0520>, <_asyncio.Task() at remote 0x200142d2520>, <_asyncio.Task() at remote 0x200142d4520>, <_asyncio.Task() at remote 0x200142d6520>, <_asyncio.Task() at remote 0x200142d0620>, <_asyncio.Task() at remote 0x20014...(truncated)) at Objects/setobject.c:511
#13 0x0000000000539423 in _Py_Dealloc (
    op={<_asyncio.Task() at remote 0x200142d2020>, <_asyncio.Task() at remote 0x200142d4020>, <_asyncio.Task() at remote 0x200142d6020>, <_asyncio.Task() at remote 0x200142d2120>, <_asyncio.Task() at remote 0x200142d4120>, <_asyncio.Task() at remote 0x200142d6120>, <_asyncio.Task() at remote 0x200142d0220>, <_asyncio.Task() at remote 0x200142d2220>, <_asyncio.Task() at remote 0x200142d4220>, <_asyncio.Task() at remote 0x200142d6220>, <_asyncio.Task() at remote 0x200142d0320>, <_asyncio.Task() at remote 0x200142d2320>, <_asyncio.Task() at remote 0x200142d4320>, <_asyncio.Task() at remote 0x200142d6320>, <_asyncio.Task() at remote 0x200142d0420>, <_asyncio.Task() at remote 0x200142d2420>, <_asyncio.Task() at remote 0x200142d4420>, <_asyncio.Task() at remote 0x200142d6420>, <_asyncio.Task() at remote 0x200142d0520>, <_asyncio.Task() at remote 0x200142d2520>, <_asyncio.Task() at remote 0x200142d4520>, <_asyncio.Task() at remote 0x200142d6520>, <_asyncio.Task() at remote 0x200142d0620>, <_asyncio.Task() at remote 0x20014...(truncated)) at Objects/object.c:2991
#14 0x0000000000539598 in _Py_MergeZeroLocalRefcount (
    op=op@entry={<_asyncio.Task() at remote 0x200142d2020>, <_asyncio.Task() at remote 0x200142d4020>, <_asyncio.Task() at remote 0x200142d6020>, <_asyncio.Task() at remote 0x200142d2120>, <_asyncio.Task() at remote 0x200142d4120>, <_asyncio.Task() at remote 0x200142d6120>, <_asyncio.Task() at remote 0x200142d0220>, <_asyncio.Task() at remote 0x200142d2220>, <_asyncio.Task() at remote 0x200142d4220>, <_asyncio.Task() at remote 0x200142d6220>, <_asyncio.Task() at remote 0x200142d0320>, <_asyncio.Task() at remote 0x200142d2320>, <_asyncio.Task() at remote 0x200142d4320>, <_asyncio.Task() at remote 0x200142d6320>, <_asyncio.Task() at remote 0x200142d0420>, <_asyncio.Task() at remote 0x200142d2420>, <_asyncio.Task() at remote 0x200142d4420>, <_asyncio.Task() at remote 0x200142d6420>, <_asyncio.Task() at remote 0x200142d0520>, <_asyncio.Task() at remote 0x200142d2520>, <_asyncio.Task() at remote 0x200142d4520>, <_asyncio.Task() at remote 0x200142d6520>, <_asyncio.Task() at remote 0x200142d0620>, <_asyncio.Task() at remote 0x20014...(truncated)) at Objects/object.c:436
#15 0x00000000006b766f in Py_DECREF (
    op={<_asyncio.Task() at remote 0x200142d2020>, <_asyncio.Task() at remote 0x200142d4020>, <_asyncio.Task() at remote 0x200142d6020>, <_asyncio.Task() at remote 0x200142d2120>, <_asyncio.Task() at remote 0x200142d4120>, <_asyncio.Task() at remote 0x200142d6120>, <_asyncio.Task() at remote 0x200142d0220>, <_asyncio.Task() at remote 0x200142d2220>, <_asyncio.Task() at remote 0x200142d4220>, <_asyncio.Task() at remote 0x200142d6220>, <_asyncio.Task() at remote 0x200142d0320>, <_asyncio.Task() at remote 0x200142d2320>, <_asyncio.Task() at remote 0x200142d4320>, <_asyncio.Task() at remote 0x200142d6320>, <_asyncio.Task() at remote 0x200142d0420>, <_asyncio.Task() at remote 0x200142d2420>, <_asyncio.Task() at remote 0x200142d4420>, <_asyncio.Task() at remote 0x200142d6420>, <_asyncio.Task() at remote 0x200142d0520>, <_asyncio.Task() at remote 0x200142d2520>, <_asyncio.Task() at remote 0x200142d4520>, <_asyncio.Task() at remote 0x200142d6520>, <_asyncio.Task() at remote 0x200142d0620>, <_asyncio.Task() at remote 0x20014...(truncated), lineno=99, filename=0x8802a0 "Python/frame.c")
    at ./Include/refcount.h:343
#16 _PyFrame_ClearLocals (frame=frame@entry=0x200142001e8) at Python/frame.c:99
#17 0x00000000006b78e6 in _PyFrame_ClearExceptCode (frame=frame@entry=0x200142001e8) at Python/frame.c:124
#18 0x000000000064dab3 in clear_gen_frame (tstate=0xb5fb30, frame=0x200142001e8) at Python/ceval.c:1750
#19 0x0000000000651f66 in _PyEval_FrameClearAndPop (tstate=tstate@entry=0xb5fb30, frame=frame@entry=0x200142001e8) at Python/ceval.c:1763
#20 0x000000000067a993 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0xb5fb30, frame=0x7fbb9ddff4f0, frame@entry=0x200142001e8, throwflag=throwflag@entry=0) at Python/generated_cases.c.h:7103
#21 0x00000000004e1144 in _PyEval_EvalFrame (throwflag=0, frame=0x200142001e8, tstate=0xb5fb30) at ./Include/internal/pycore_ceval.h:116
#22 gen_send_ex2 (gen=0x20014200190, arg=None, presult=0x7fbb9ddff658, exc=exc@entry=0, closing=closing@entry=0) at Objects/genobject.c:245
#23 0x00000000004e1311 in PyGen_am_send (self=<optimized out>, arg=<optimized out>, result=<optimized out>) at Objects/genobject.c:280
#24 0x0000000000492d54 in PyIter_Send (iter=iter@entry=<coroutine at remote 0x20014200190>, arg=None, result=result@entry=0x7fbb9ddff658) at Objects/abstract.c:2927
#25 0x00007fbb9efdd157 in task_step_impl (state=state@entry=0x20000591eb0, task=task@entry=0x200142d0120, exc=exc@entry=0x0) at ./Modules/_asynciomodule.c:2942
#26 0x00007fbb9efde105 in task_step (state=state@entry=0x20000591eb0, task=task@entry=0x200142d0120, exc=exc@entry=0x0) at ./Modules/_asynciomodule.c:3265
#27 0x00007fbb9efde536 in task_wakeup_lock_held (task=task@entry=0x200142d0120, o=o@entry=<_asyncio.Future() at remote 0x200142e0260>) at ./Modules/_asynciomodule.c:3365
#28 0x00007fbb9efde635 in task_wakeup (task=0x200142d0120, o=<_asyncio.Future() at remote 0x200142e0260>) at ./Modules/_asynciomodule.c:3397
#29 0x0000000000532a6f in cfunction_vectorcall_O (func=<built-in method task_wakeup of _asyncio.Task object at remote 0x200142d0120>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at ./Include/cpython/methodobject.h:50
#30 0x00000000006a3456 in _PyObject_VectorcallTstate (tstate=tstate@entry=0xb5fb30, callable=<built-in method task_wakeup of _asyncio.Task object at remote 0x200142d0120>, args=args@entry=0x20014077a20,
    nargsf=nargsf@entry=1, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:167
#31 0x00000000006a493e in context_run (self=<_contextvars.Context at remote 0x20014070790>, args=0x20014077a18, nargs=2, kwnames=0x0) at Python/context.c:728
#32 0x0000000000531e1d in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method run of _contextvars.Context object at remote 0x20014070790>, args=0x20014077a18, nargsf=<optimized out>, kwnames=0x0)
    at ./Include/cpython/methodobject.h:50
#33 0x00000000004b7bff in _PyVectorcall_Call (tstate=tstate@entry=0xb5fb30, func=0x531d16 <cfunction_vectorcall_FASTCALL_KEYWORDS>,
    callable=callable@entry=<built-in method run of _contextvars.Context object at remote 0x20014070790>,
    tuple=tuple@entry=(<built-in method task_wakeup of _asyncio.Task object at remote 0x200142d0120>, <_asyncio.Future() at remote 0x200142e0260>), kwargs=kwargs@entry=0x0) at ./Include/object.h:783
#34 0x00000000004b7f6b in _PyObject_Call (tstate=0xb5fb30, callable=callable@entry=<built-in method run of _contextvars.Context object at remote 0x20014070790>,
    args=(<built-in method task_wakeup of _asyncio.Task object at remote 0x200142d0120>, <_asyncio.Future() at remote 0x200142e0260>), kwargs=0x0) at Objects/call.c:348
#35 0x00000000004b7fc2 in PyObject_Call (callable=callable@entry=<built-in method run of _contextvars.Context object at remote 0x20014070790>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:373
#36 0x000000000065ec31 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0xb5fb30, frame=0x7fbb9efae540, frame@entry=0x7fbb9efae020, throwflag=throwflag@entry=0) at Python/generated_cases.c.h:1778
#37 0x000000000068260b in _PyEval_EvalFrame (throwflag=0, frame=0x7fbb9efae020, tstate=0xb5fb30) at ./Include/internal/pycore_ceval.h:116
#38 _PyEval_Vector (tstate=<optimized out>, func=<optimized out>, locals=locals@entry=0x0, args=0x7fbb9ddffd08, argcount=1, kwnames=<optimized out>) at Python/ceval.c:1911
#39 0x00000000004b5444 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#40 0x00000000004ba0c6 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=1, args=0x7fbb9ddffd08, callable=<function at remote 0x20000b8a810>, tstate=0xb5fb30) at ./Include/internal/pycore_call.h:167
#41 method_vectorcall (method=<optimized out>, args=<optimized out>, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:71
#42 0x00000000004b7bff in _PyVectorcall_Call (tstate=tstate@entry=0xb5fb30, func=0x4b9e34 <method_vectorcall>, callable=callable@entry=<method at remote 0x200019ccbb0>, tuple=tuple@entry=(), kwargs=kwargs@entry=0x0)
    at ./Include/object.h:783
#43 0x00000000004b7f6b in _PyObject_Call (tstate=0xb5fb30, callable=<method at remote 0x200019ccbb0>, args=(), kwargs=0x0) at Objects/call.c:348
#44 0x00000000004b7fc2 in PyObject_Call (callable=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:373
#45 0x00000000007b8fc9 in thread_run (boot_raw=boot_raw@entry=0xb52d30) at ./Modules/_threadmodule.c:346
#46 0x0000000000727ff9 in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:242
#47 0x00007fbb9f289d82 in start_thread () from /lib64/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#48 0x00007fbb9f30ee20 in clone3 () from /lib64/libc.so.6
(gdb)

cc @kumaraditya303

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.14.0a3+ experimental free-threading build (heads/main:58a9133fc2c, Jan 8 2025, 16:10:49) [GCC 11.5.0 20240719 (Red Hat 11.5.0-2)]

@mpage mpage added tests Tests in the Lib/test dir type-crash A hard crash of the interpreter, possibly with a core dump topic-free-threading labels Jan 9, 2025
@github-project-automation github-project-automation bot moved this to Todo in asyncio Jan 9, 2025
@kumaraditya303
Copy link
Contributor

#128541 would fix this

cc @colesbury

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Tests in the Lib/test dir topic-asyncio topic-free-threading type-crash A hard crash of the interpreter, possibly with a core dump
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants
  NODES
COMMUNITY 2
INTERN 4
Project 8
todo 2
USERS 79