GeezerVison is showing github.com — gh-126016: Fix flaky test by allowing the SIGINT return code by ZeroIntensity · Pull Request #139219 · python/cpython
Conversation
ZeroIntensity
commented
Sep 21, 2025
•
edited by bedevere-app
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
In GH-139158, I added a test that sent KeyboardInterrupt to the main thread so it would interrupt _Py_Finalize and shut down. There was a subtle race condition there:
- The main thread starts the subthread by calling
_thread._start_joinable_thread.
- The thread is physically created before
_start_joinable_thread finishes from Python's perspective, so it begins execution.
- The subthread prints out
a, signaling to the parent process that it is ready and may send the interrupt signal.
- The subthread yields the GIL anywhere after this point.
- The main thread acquires the GIL, and then finishes executing
_start_joinable_thread.
- The parent process sends the
KeyboardInterrupt before _Py_Finalize is reached. Python returns -2, which fails the test.
The simplest way to fix this is by allowing a return code of -2 (-SIGINT) in addition to 0.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
The buildbot failures are unrelated, pre-existing issues.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
ZeroIntensity reacted with heart emoji
Sorry, something went wrong.
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.
|