-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
test_weakref.test_threaded_weak_key_dict_deepcopy
crash: merged objects should have ob_tid == 0
#135106
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
The bug was also seen on the 3.14 branch on Windows with Free Threading: https://buildbot.python.org/#/builders/1717/builds/206 |
test_weakref.test_threaded_weak_key_dict_deepcopy
crashtest_weakref.test_threaded_weak_key_dict_deepcopy
crash: merged objects should have ob_tid == 0
The trashcan mechanism is broken in the 3.14 free threaded build. Lines 3166 to 3176 in 21bac3a
We're only seeing this currently on Windows probably because of the smaller stack size. |
Returns `1` a little less than 1% of the time in _Py_RecursionLimit_GetMargin() to force the use of the trashcan mechanism.
Returns `1` a little less than 1% of the time in _Py_RecursionLimit_GetMargin() to force the use of the trashcan mechanism.
I think this is also broken in the default build. If you change |
How does the FT GC use |
In the default build because we disguise the pointer as a large, but mortal reference count, when storing it in the refcount field. Do we need to do some similar mangling in the FT GC to make |
Uh oh!
There was an error while loading. Please reload this page.
Bug report
Looks like it happens during a
gc.collect()
call:cpython/Lib/test/test_weakref.py
Lines 1992 to 1999 in 1ffe913
https://buildbot.python.org/#/builders/1295/builds/591
The test passed on retry, but this seems like a bug.
Seen in main (3.15) on Windows debug build with free threading
Linked PRs
1
in _Py_RecursionLimit_GetMargin #135589The text was updated successfully, but these errors were encountered: