-
Couldn't load subscription status.
- Fork 889
Description
Bug Description
After upgrading to Python 3.13.0b3, various projects that previously worked with Python 3.13.0b2 suddenly started crashing with assertion error. For example, pyproject-fmt-rust:
$ python -c 'import pyproject_fmt_rust'
python: Objects/unicodeobject.c:15052: intern_static: Assertion `_Py_IsImmortal(s)' failed.
Aborted (core dumped)
I've been able to bisect it to python/cpython@9769b7a. Unfortunately, I've been only able to test it against pyo3-0.21.2, as porting that package to 0.22.0 is above my current skills. However, a quick search through the repository doesn't reveal anything obviously relevant. If I missed something, I'm really sorry about that.
Steps to Reproduce
- Build Python 3.13.0b3
--with-assertions. git clone https://github.com/tox-dev/pyproject-fmt-rust/cd pyproject-fmt-rust- Create and enter a venv (e.g.
~/git/cpython/python -m venv .venv,. .venv/bin/activate). pip install -e .python -c "import pyproject_fmt_rust"
Backtrace
(gdb) bt
#0 0x00007fc5112935ac in ?? () from /usr/lib64/libc.so.6
#1 0x00007fc51123c816 in raise () from /usr/lib64/libc.so.6
#2 0x00007fc5112248fa in abort () from /usr/lib64/libc.so.6
#3 0x00007fc51122481e in ?? () from /usr/lib64/libc.so.6
#4 0x00007fc511234cd6 in __assert_fail () from /usr/lib64/libc.so.6
#5 0x000055748fc9903e in intern_static (interp=<optimized out>, s=0x557490060910 <_PyRuntime+36400>) at Objects/unicodeobject.c:15052
#6 0x000055748fc99181 in intern_common (interp=0x55749006d340 <_PyRuntime+88160>, s=0x557490060910 <_PyRuntime+36400>,
immortalize=immortalize@entry=false) at Objects/unicodeobject.c:15146
#7 0x000055748fccafb1 in _PyUnicode_InternMortal (interp=<optimized out>, p=p@entry=0x7ffeea2375d8) at Objects/unicodeobject.c:15267
#8 0x000055748fc55531 in PyObject_SetAttr (v=0x7fc51057cfe0, name=<optimized out>, value=0x7fc510577000) at Objects/object.c:1330
#9 0x00007fc5102efc51 in <pyo3::instance::Bound<pyo3::types::any::PyAny> as pyo3::types::any::PyAnyMethods>::setattr::inner ()
from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#10 0x00007fc5102e64d8 in <pyo3::instance::Bound<pyo3::types::module::PyModule> as pyo3::types::module::PyModuleMethods>::index ()
from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#11 0x00007fc5102ef614 in <pyo3::instance::Bound<pyo3::types::module::PyModule> as pyo3::types::module::PyModuleMethods>::add::inner
() from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#12 0x00007fc5102e6734 in <pyo3::instance::Bound<pyo3::types::module::PyModule> as pyo3::types::module::PyModuleMethods>::add_function
() from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#13 0x00007fc5101a9057 in _lib::<impl _lib::_lib::MakeDef>::make_def::__pyo3_pymodule ()
from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#14 0x00007fc51017cd0b in pyo3::sync::GILOnceCell<T>::init () from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#15 0x00007fc5102ea771 in pyo3::impl_::pymodule::ModuleDef::make_module ()
from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#16 0x00007fc5101a8ef9 in PyInit__lib () from /tmp/pyproject-fmt-rust/src/pyproject_fmt_rust/_lib.abi3.so
#17 0x000055748fd63629 in _PyImport_RunModInitFunc (p0=p0@entry=0x7fc5101a8e10 <PyInit__lib>, info=info@entry=0x7ffeea237b40,
p_res=p_res@entry=0x7ffeea237ab0) at ./Python/importdl.c:423
#18 0x000055748fd60306 in import_run_extension (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
p0=p0@entry=0x7fc5101a8e10 <PyInit__lib>, info=info@entry=0x7ffeea237b40, spec=spec@entry=0x7fc51055cf50, modules=<optimized out>)
at Python/import.c:1951
#19 0x000055748fd60fb5 in _imp_create_dynamic_impl (module=module@entry=0x7fc5111ac9a0, spec=0x7fc51055cf50, file=<optimized out>)
at Python/import.c:4683
#20 0x000055748fd6102d in _imp_create_dynamic (module=0x7fc5111ac9a0, args=args@entry=0x7fc510580658, nargs=nargs@entry=1)
at Python/clinic/import.c.h:485
#21 0x000055748fc501a9 in cfunction_vectorcall_FASTCALL (func=0x7fc5111aed90, args=0x7fc510580658, nargsf=<optimized out>,
kwnames=<optimized out>) at Objects/methodobject.c:425
#22 0x000055748fc05489 in _PyVectorcall_Call (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
func=0x55748fc5014b <cfunction_vectorcall_FASTCALL>, callable=callable@entry=0x7fc5111aed90, tuple=tuple@entry=0x7fc510580640,
kwargs=kwargs@entry=0x7fc510577100) at Objects/call.c:273
#23 0x000055748fc05788 in _PyObject_Call (tstate=0x55749009cb80 <_PyRuntime+282784>, callable=callable@entry=0x7fc5111aed90,
args=args@entry=0x7fc510580640, kwargs=kwargs@entry=0x7fc510577100) at Objects/call.c:348
#24 0x000055748fc057c4 in PyObject_Call (callable=callable@entry=0x7fc5111aed90, args=args@entry=0x7fc510580640,
kwargs=kwargs@entry=0x7fc510577100) at Objects/call.c:373
#25 0x000055748fd175cf in _PyEval_EvalFrameDefault (tstate=0x55749009cb80 <_PyRuntime+282784>, frame=0x7fc5114e76c0, throwflag=0)
at Python/generated_cases.c.h:1353
#26 0x000055748fd23e26 in _PyEval_EvalFrame (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=<optimized out>,
throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:119
#27 0x000055748fd23f49 in _PyEval_Vector (tstate=0x55749009cb80 <_PyRuntime+282784>, func=0x7fc5111d0400, locals=locals@entry=0x0,
args=0x7ffeea237ee0, argcount=2, kwnames=0x0) at Python/ceval.c:1819
#28 0x000055748fc0393c in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>,
kwnames=<optimized out>) at Objects/call.c:413
#29 0x000055748fc03c6d in _PyObject_VectorcallTstate (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
callable=callable@entry=0x7fc5111d0400, args=args@entry=0x7ffeea237ee0, nargsf=nargsf@entry=2, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:168
#30 0x000055748fc04a4d in object_vacall (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, base=base@entry=0x0,
callable=0x7fc5111d0400, vargs=vargs@entry=0x7ffeea237f60) at Objects/call.c:819
#31 0x000055748fc04b81 in PyObject_CallMethodObjArgs (obj=0x0, name=<optimized out>) at Objects/call.c:880
#32 0x000055748fd5e65e in import_find_and_load (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
abs_name=abs_name@entry=0x7fc510576bf0) at Python/import.c:3651
#33 0x000055748fd620e3 in PyImport_ImportModuleLevelObject (name=name@entry=0x7fc5105803f0, globals=<optimized out>,
locals=locals@entry=0x7fc5104f4600, fromlist=fromlist@entry=0x7fc510576d40, level=level@entry=1) at Python/import.c:3733
#34 0x000055748fd0fac7 in import_name (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=frame@entry=0x7fc5114e7378,
name=0x7fc5105803f0, fromlist=fromlist@entry=0x7fc510576d40, level=level@entry=0x55749005b0a8 <_PyRuntime+13768>)
at Python/ceval.c:2675
#35 0x000055748fd1bdc7 in _PyEval_EvalFrameDefault (tstate=0x55749009cb80 <_PyRuntime+282784>, frame=0x7fc5114e7378, throwflag=0)
at Python/generated_cases.c.h:3199
#36 0x000055748fd23e26 in _PyEval_EvalFrame (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=<optimized out>,
throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:119
#37 0x000055748fd23f49 in _PyEval_Vector (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, func=func@entry=0x7fc51055ccc0,
locals=locals@entry=0x7fc5104f4600, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0)
at Python/ceval.c:1819
#38 0x000055748fd24012 in PyEval_EvalCode (co=co@entry=0x7fc510506930, globals=globals@entry=0x7fc5104f4600,
locals=locals@entry=0x7fc5104f4600) at Python/ceval.c:599
#39 0x000055748fd0c693 in builtin_exec_impl (module=module@entry=0x7fc511196e80, source=0x7fc510506930, globals=0x7fc5104f4600,
locals=0x7fc5104f4600, closure=0x0) at Python/bltinmodule.c:1145
#40 0x000055748fd0c7e3 in builtin_exec (module=0x7fc511196e80, args=<optimized out>, args@entry=0x7fc51054e658, nargs=nargs@entry=2,
kwnames=kwnames@entry=0x0) at Python/clinic/bltinmodule.c.h:556
#41 0x000055748fc5003c in cfunction_vectorcall_FASTCALL_KEYWORDS (func=0x7fc511197380, args=0x7fc51054e658, nargsf=<optimized out>,
kwnames=0x0) at Objects/methodobject.c:441
#42 0x000055748fc05489 in _PyVectorcall_Call (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
func=0x55748fc4ffe5 <cfunction_vectorcall_FASTCALL_KEYWORDS>, callable=callable@entry=0x7fc511197380,
tuple=tuple@entry=0x7fc51054e640, kwargs=kwargs@entry=0x7fc51054c900) at Objects/call.c:273
#43 0x000055748fc05788 in _PyObject_Call (tstate=0x55749009cb80 <_PyRuntime+282784>, callable=callable@entry=0x7fc511197380,
args=args@entry=0x7fc51054e640, kwargs=kwargs@entry=0x7fc51054c900) at Objects/call.c:348
#44 0x000055748fc057c4 in PyObject_Call (callable=callable@entry=0x7fc511197380, args=args@entry=0x7fc51054e640,
kwargs=kwargs@entry=0x7fc51054c900) at Objects/call.c:373
#45 0x000055748fd175cf in _PyEval_EvalFrameDefault (tstate=0x55749009cb80 <_PyRuntime+282784>, frame=0x7fc5114e72f0, throwflag=0)
at Python/generated_cases.c.h:1353
#46 0x000055748fd23e26 in _PyEval_EvalFrame (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=<optimized out>,
throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:119
#47 0x000055748fd23f49 in _PyEval_Vector (tstate=0x55749009cb80 <_PyRuntime+282784>, func=0x7fc5111d0400, locals=locals@entry=0x0,
args=0x7ffeea2387d0, argcount=2, kwnames=0x0) at Python/ceval.c:1819
#48 0x000055748fc0393c in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>,
kwnames=<optimized out>) at Objects/call.c:413
#49 0x000055748fc03c6d in _PyObject_VectorcallTstate (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
callable=callable@entry=0x7fc5111d0400, args=args@entry=0x7ffeea2387d0, nargsf=nargsf@entry=2, kwnames=kwnames@entry=0x0)
at ./Include/internal/pycore_call.h:168
#50 0x000055748fc04a4d in object_vacall (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, base=base@entry=0x0,
callable=0x7fc5111d0400, vargs=vargs@entry=0x7ffeea238850) at Objects/call.c:819
#51 0x000055748fc04b81 in PyObject_CallMethodObjArgs (obj=0x0, name=<optimized out>) at Objects/call.c:880
#52 0x000055748fd5e65e in import_find_and_load (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>,
abs_name=abs_name@entry=0x7fc51054d270) at Python/import.c:3651
#53 0x000055748fd620e3 in PyImport_ImportModuleLevelObject (name=name@entry=0x7fc51054d270, globals=<optimized out>,
locals=locals@entry=0x7fc5104f4580, fromlist=fromlist@entry=0x5574900330e0 <_Py_NoneStruct>, level=level@entry=0)
at Python/import.c:3733
#54 0x000055748fd0fac7 in import_name (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=frame@entry=0x7fc5114e7020,
name=0x7fc51054d270, fromlist=fromlist@entry=0x5574900330e0 <_Py_NoneStruct>, level=level@entry=0x55749005b088 <_PyRuntime+13736>)
at Python/ceval.c:2675
#55 0x000055748fd1bdc7 in _PyEval_EvalFrameDefault (tstate=0x55749009cb80 <_PyRuntime+282784>, frame=0x7fc5114e7020, throwflag=0)
at Python/generated_cases.c.h:3199
#56 0x000055748fd23e26 in _PyEval_EvalFrame (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, frame=<optimized out>,
throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:119
#57 0x000055748fd23f49 in _PyEval_Vector (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, func=func@entry=0x7fc5111d14e0,
locals=locals@entry=0x7fc5104f4580, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0)
at Python/ceval.c:1819
#58 0x000055748fd24012 in PyEval_EvalCode (co=co@entry=0x7fc510549b50, globals=globals@entry=0x7fc5104f4580,
locals=locals@entry=0x7fc5104f4580) at Python/ceval.c:599
#59 0x000055748fd85e74 in run_eval_code_obj (tstate=tstate@entry=0x55749009cb80 <_PyRuntime+282784>, co=co@entry=0x7fc510549b50,
globals=globals@entry=0x7fc5104f4580, locals=locals@entry=0x7fc5104f4580) at Python/pythonrun.c:1292
#60 0x000055748fd8601e in run_mod (mod=mod@entry=0x5574cae39fb8, filename=filename@entry=0x7fc5104f46f0,
globals=globals@entry=0x7fc5104f4580, locals=locals@entry=0x7fc5104f4580, flags=flags@entry=0x7ffeea238e00,
arena=arena@entry=0x7fc51111bcf0, interactive_src=0x7fc5104f83f0, generate_new_source=0) at Python/pythonrun.c:1377
#61 0x000055748fd8678e in _PyRun_StringFlagsWithName (str=str@entry=0x7fc5104f4690 "import pyproject_fmt_rust\n",
name=name@entry=0x7fc5104f46f0, start=start@entry=257, globals=globals@entry=0x7fc5104f4580, locals=locals@entry=0x7fc5104f4580,
flags=flags@entry=0x7ffeea238e00, generate_new_source=0) at Python/pythonrun.c:1176
#62 0x000055748fd87ffc in _PyRun_SimpleStringFlagsWithName (command=0x7fc5104f4690 "import pyproject_fmt_rust\n",
name=name@entry=0x55748fe14bd3 "<string>", flags=flags@entry=0x7ffeea238e00) at Python/pythonrun.c:516
#63 0x000055748fdab3f5 in pymain_run_command (command=<optimized out>) at Modules/main.c:252
#64 0x000055748fdabfb6 in pymain_run_python (exitcode=exitcode@entry=0x7ffeea238ea4) at Modules/main.c:631
#65 0x000055748fdac346 in Py_RunMain () at Modules/main.c:719
#66 0x000055748fdac3c0 in pymain_main (args=args@entry=0x7ffeea238f00) at Modules/main.c:749
#67 0x000055748fdac497 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:773
#68 0x000055748fba68e6 in main (argc=<optimized out>, argv=<optimized out>) at ./Programs/python.c:15Your operating system and version
Gentoo Linux amd64
Your Python version (python --version)
Python 3.13.0b3
Your Rust version (rustc --version)
rustc 1.79.0 (129f3b996 2024-06-10) (gentoo)
Your PyO3 version
0.21.2
How did you install python? Did you use a virtualenv?
Reproduced both with Python build from source with --with-assertions (as part of git bisect) and 3.13.0b3 from Gentoo ebuild. Virtualenv for testing as noted above.
Additional Info
No response