| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Two threads assigning to a special method of the same class could deadlock in the free-threaded build. If type_lock_prevent_release() only acts on TYPE_LOCK then we can get lock inversion. This happens when BEGIN_TYPE_DICT_LOCK() is used and the critical section holds both mutexes. We need to prevent release of both mutexes. Assisted-by: Claude
|
This PR requires GH-155370 to be merged first otherwise the unit test added exposes data-races. |
Sorry, something went wrong.
|
Setting as release blocker. When discussing this with @kumaraditya303, he suspects that some libraries could trigger this deadlock when they create types. |
Sorry, something went wrong.
|
Thanks @nascheme for the PR, and @kumaraditya303 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.15. |
Sorry, something went wrong.
|
GH-155822 is a backport of this pull request to the 3.15 branch. |
Sorry, something went wrong.
|
Note that a unit test added by this PR exposes an existing leak, see gh-155978. This leak causes some refleak build bots to fail. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Two threads assigning to a special method of the same class could deadlock in the free-threaded build. If type_lock_prevent_release() only acts on TYPE_LOCK then we can get lock inversion. This happens when BEGIN_TYPE_DICT_LOCK() is used and the critical section holds both mutexes. We need to prevent release of both mutexes.