SIGN IN SIGN UP

[3.13] gh-119525: Fix deadlock with `_PyType_Lookup` and the GIL (GH-119527) (#119746)

The deadlock only affected the free-threaded build and only occurred
when the GIL was enabled at runtime. The `Py_DECREF(old_name)` call
might 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 c22323cd1c200ca1b22c47af95f67c4b2d661fe7)

Co-authored-by: Sam Gross <colesbury@gmail.com>
M
Miss Islington (bot) committed
dcfbd3be9f1e0ba7aa32214e8f5f7f2ea4375a28
Parent: 40a024c
Committed by GitHub <noreply@github.com> on 5/29/2024, 7:47:47 PM