-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
3.13.0rc1 regression in PyEval_GetLocals(): SystemError: Objects/dictobject.c:3774: bad argument to internal function
#122728
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
Comments
We see this in Fedora as well. https://bugzilla.redhat.com/show_bug.cgi?id=2303107 gpgme built with Python 3.13.0b4 exhibits the same behavior when run on Python 3.13.0rc1. |
Should not be necessary. We build Python without and the same SystemError happens. |
The problem is that PyDict_Update() is called with NULL as the first argument. It's a regression in PyEval_GetLocals(). gdb traceback:
|
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
gpgme
: SystemError: Objects/dictobject.c:3774: bad argument to internal function
SystemError: Objects/dictobject.c:3774: bad argument to internal function
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals(). (cherry picked from commit 4767a6e) Co-authored-by: Victor Stinner <[email protected]>
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals(). (cherry picked from commit 4767a6e)
…122757) gh-122728: Fix SystemError in PyEval_GetLocals() (GH-122735) Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals(). (cherry picked from commit 4767a6e) Co-authored-by: Victor Stinner <[email protected]>
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
Fix PyEval_GetLocals() to avoid SystemError ("bad argument to internal function"). Don't redefine the 'ret' variable in the if block. Add an unit test on PyEval_GetLocals().
Crash report
What happened?
After upgrading to CPython 3.13.0rc1, the
gpgme
test suite started failing. The tests fail with errors resembling:I've been able to bisect it to 233ed46 (#121869). However, on this commit I'm getting also a bunch of
python3.13: Objects/typeobject.c:5257: _PyType_LookupRef: Assertion '!PyErr_Occurred()' failed.
— they are fixed in some subsequent commit. But thefinal.py
failure occurs from that commit to tip of 3.13 (fe65a8b).Now, gpgme's build system is horrible. To reproduce, I've done the following:
--with-assertions
.ln -s python python3.13
symlink in the build directory.Note that in order to rebuild, you need to
rm -rf python3.13-gpg
.CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.13.0rc1 (main, Aug 2 2024, 18:56:30) [GCC 14.2.0]
Linked PRs
The text was updated successfully, but these errors were encountered: