Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

segfault in gc with 3.14.0b1, trio and pytest #133932

Open
Assignees
markshannon
Labels
3.14bugs and security fixes3.15new features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dump
@jakkdl

Description

@jakkdl

Crash report

What happened?

I'm encountering a segfault during garbage collection since 3.14.0b1 (I have not been able to reproduce it on 3.14.0a6), and while I've so far been able to minify the repro somewhat it still requires both pytest and trio

importtriofromcontextlibimportsuppressimportgcdeftest_error_in_run_loop()->None:# Blow stuff up real good to check we at least get a TrioInternalErrorasyncdefmain()->None:task=trio.lowlevel.current_task()task._schedule_points="hello!"# type: ignoreawaittrio.lowlevel.checkpoint()withsuppress(trio.TrioInternalError):trio.run(main)gc.collect()gc.collect()# removing this line makes the segfault disappear
$ tox -e repro_crash===================================== test session starts =====================================platform linux -- Python 3.14.0b1, pytest-8.3.5, pluggy-1.5.0cachedir: .tox/crash/.pytest_cacherootdir: /home/h/Git/trio/unbreak_314configfile: pyproject.tomlcollected 1 item                                                                              Fatal Python error: Segmentation faultCurrent thread 0x00007fc3244b0bc0 [pytest] (most recent call first):  Garbage-collecting  File "./foo.py", line 14 in test_error_in_run_loop  File ".../site-packages/_pytest/python.py", line 159 in pytest_pyfunc_call  File ".../site-packages/pluggy/_callers.py", line 103 in _multicall  File ".../site-packages/pluggy/_manager.py", line 120 in _hookexec  File ".../site-packages/pluggy/_hooks.py", line 513 in __call__  File ".../site-packages/_pytest/python.py", line 1627 in runtest  File ".../site-packages/_pytest/runner.py", line 174 in pytest_runtest_call  File ".../site-packages/pluggy/_callers.py", line 103 in _multicall  File ".../site-packages/pluggy/_manager.py", line 120 in _hookexec  File ".../site-packages/pluggy/_hooks.py", line 513 in __call__  File ".../site-packages/_pytest/runner.py", line 242 in <lambda>  File ".../site-packages/_pytest/runner.py", line 341 in from_call  File ".../site-packages/_pytest/runner.py", line 241 in call_and_report  File ".../site-packages/_pytest/runner.py", line 132 in runtestprotocol  File ".../site-packages/_pytest/runner.py", line 113 in pytest_runtest_protocol  File ".../site-packages/pluggy/_callers.py", line 103 in _multicall  File ".../site-packages/pluggy/_manager.py", line 120 in _hookexec  File ".../site-packages/pluggy/_hooks.py", line 513 in __call__  File ".../site-packages/_pytest/main.py", line 362 in pytest_runtestloop  File ".../site-packages/pluggy/_callers.py", line 103 in _multicall  File ".../site-packages/pluggy/_manager.py", line 120 in _hookexec  File ".../site-packages/pluggy/_hooks.py", line 513 in __call__  File ".../site-packages/_pytest/main.py", line 337 in _main  File ".../site-packages/_pytest/main.py", line 283 in wrap_session  File ".../site-packages/_pytest/main.py", line 330 in pytest_cmdline_main  File ".../site-packages/pluggy/_callers.py", line 103 in _multicall  File ".../site-packages/pluggy/_manager.py", line 120 in _hookexec  File ".../site-packages/pluggy/_hooks.py", line 513 in __call__  File ".../site-packages/_pytest/config/__init__.py", line 175 in main  File ".../site-packages/_pytest/config/__init__.py", line 201 in console_main  File "./.tox/crash/bin/pytest", line 10 in <module>Current thread's C stack trace (most recent call first):  Binary file "/usr/lib/libpython3.14.so.1.0", at _Py_DumpStack+0x4d [0x7fc324096a8d]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x2a778c [0x7fc3240a778c]  Binary file "/usr/lib/libc.so.6", at +0x3dcd0 [0x7fc323c4bcd0]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x23a40a [0x7fc32403a40a]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xd8d80 [0x7fc323ed8d80]  Binary file "/usr/lib/libpython3.14.so.1.0", at _Py_Dealloc+0x75 [0x7fc323f21745]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x1436c1 [0x7fc323f436c1]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x143e65 [0x7fc323f43e65]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x2379db [0x7fc3240379db]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x237e6c [0x7fc324037e6c]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x2a4df8 [0x7fc3240a4df8]  Binary file "/usr/lib/libpython3.14.so.1.0", at PyObject_Vectorcall+0x5d [0x7fc323ebbc4d]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x13ba [0x7fc323fef17a]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x201237 [0x7fc324001237]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbb926 [0x7fc323ebb926]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbbbc0 [0x7fc323ebbbc0]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x1437c9 [0x7fc323f437c9]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyObject_MakeTpCall+0x9f [0x7fc323ebb52f]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x4bbf [0x7fc323ff297f]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x201237 [0x7fc324001237]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbb926 [0x7fc323ebb926]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbbbc0 [0x7fc323ebbbc0]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x1437c9 [0x7fc323f437c9]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbb231 [0x7fc323ebb231]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x1cae [0x7fc323fefa6e]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x201237 [0x7fc324001237]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbb926 [0x7fc323ebb926]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0xbbbc0 [0x7fc323ebbbc0]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x1437c9 [0x7fc323f437c9]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyObject_MakeTpCall+0x9f [0x7fc323ebb52f]  Binary file "/usr/lib/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x4bbf [0x7fc323ff297f]  Binary file "/usr/lib/libpython3.14.so.1.0", at +0x201237 [0x7fc324001237]  <truncated rest of calls>foo.py crash: exit -11 (1.06 seconds) .> pytest foo.py pid=781607  crash: FAIL code -11 (2.11 seconds)  evaluation failed :( (2.22 seconds)

I also reproduced it in a clean 3.14.0b1 venv with trio==0.30.0; pytest==8.3.5 without relying on tox, but idr how to get it to print the stack trace that way.

It's not 100% reliable, so I suspect there's some thread race condition going on.

CPython versions tested on:

3.14

Operating systems tested on:

Linux

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

Python 3.14.0b1 (main, May 9 2025, 13:04:07) [GCC 14.2.1 20250207]

Linked PRs

Metadata

Metadata

Assignees

Labels

3.14bugs and security fixes3.15new features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dump

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp