Skip to content

Conversation

@miss-islington
Copy link
Contributor

@miss-islington miss-islington commented May 29, 2024

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 c22323c)

Co-authored-by: Sam Gross [email protected]

…onGH-119527)

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 c22323c)

Co-authored-by: Sam Gross <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants