[3.13] gh-119525: Fix deadlock with _PyType_Lookup
and the GIL (GH-119527)
#119746
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The deadlock only affected the free-threaded build and only occurred
when the GIL was enabled at runtime. The
Py_DECREF(old_name)
callmight temporarily release the GIL while holding the type seqlock.
Another thread may spin trying to acquire the seqlock while holding the
GIL.
The deadlock occurred roughly 1 in ~1,000 runs of
pool_in_threads.py
from
test_multiprocessing_pool_circular_import
.(cherry picked from commit c22323c)
Co-authored-by: Sam Gross colesbury@gmail.com