GeezerVison is showing github.com — [3.13] gh-137400: Fix thread-safety issues when profiling all threads (gh-137518) by colesbury · Pull Request #137733 · python/cpython
Conversation
colesbury
commented
Aug 13, 2025
•
edited by bedevere-app
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
There were a few thread-safety issues when profiling or tracing all threads via PyEval_SetProfileAllThreads or PyEval_SetTraceAllThreads:
- The loop over thread states could crash if a thread exits concurrently (in both the free threading and default build)
- The modification of
c_profilefunc and c_tracefunc wasn't thread-safe on the free threading build. (cherry picked from commit a10152f)
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
…hreads (pythongh-137518)
There were a few thread-safety issues when profiling or tracing all
threads via PyEval_SetProfileAllThreads or PyEval_SetTraceAllThreads:
* The loop over thread states could crash if a thread exits concurrently
(in both the free threading and default build)
* The modification of `c_profilefunc` and `c_tracefunc` wasn't
thread-safe on the free threading build.
(cherry picked from commit a10152f)
Co-authored-by: Sam Gross <[email protected]>
This was referenced Aug 13, 2025
|
FYI, the ABI change seems fine to me.
|
colesbury reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
|
self.set = not self.set
|
|
|
|
|
|
|
|
|
@threading_helper.requires_working_threading()
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Presumably this test should work regardless of the threading model?
So, maybe just run this test unconditionally?
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the InstrumentationMultiThreadedMixin subclasses hang on wasi where there are just no-op pthread stubs.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The backport looks good to me!
Though, given that 3.13t is experimental and 3.14 is now out, maybe we should start thinking about not doing backports like this any more...
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Though, given that 3.13t is experimental and 3.14 is now out, maybe we should start thinking about not doing backports like this any more...
I generally agree, but one of the reasons I decided to backport this is that I think it will make the free-threaded CI more stable as well as fixing a thread-safety issue.
|
encukou reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
encukou
encukou approved these changes
ericsnowcurrently
Awaiting requested review from ericsnowcurrently
ericsnowcurrently is a code owner
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|