GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

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

@ZeroIntensity ZeroIntensity commented Sep 21, 2025 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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:

  1. The main thread starts the subthread by calling _thread._start_joinable_thread.
  2. The thread is physically created before _start_joinable_thread finishes from Python's perspective, so it begins execution.
  3. The subthread prints out a, signaling to the parent process that it is ready and may send the interrupt signal.
  4. The subthread yields the GIL anywhere after this point.
  5. The main thread acquires the GIL, and then finishes executing _start_joinable_thread.
  6. 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.

  • Issue: Multithreaded subinterpreters can be running during finalization #126016

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ZeroIntensity
Hotfix for the failing tests.
2a28762
@ZeroIntensity ZeroIntensity added the tests Tests in the Lib/test dir label Sep 21, 2025
@ZeroIntensity
ZeroIntensity requested a review from ericsnowcurrently as a code owner September 21, 2025 21:58
@ZeroIntensity ZeroIntensity added the skip news label Sep 21, 2025
@bedevere-app bedevere-app Bot added the awaiting core review label Sep 21, 2025
@bedevere-app bedevere-app Bot mentioned this pull request Sep 21, 2025
Multithreaded subinterpreters can be running during finalization #126016
Closed
@ZeroIntensity ZeroIntensity added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Sep 21, 2025
@bedevere-bot

bedevere-bot commented Sep 21, 2025

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @ZeroIntensity for commit 2a28762 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F139219%2Fmerge

If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Sep 21, 2025
@ZeroIntensity ZeroIntensity mentioned this pull request Sep 21, 2025
gh-138709: Supress stdout/stderr during test_sampling_profiler tests #139212
Merged
@encukou

encukou commented Sep 23, 2025

Copy link
Copy Markdown
Member

The buildbot failures are unrelated, pre-existing issues.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

encukou
encukou approved these changes Sep 23, 2025
View reviewed changes
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels Sep 23, 2025
@encukou
encukou merged commit 6b4e3fe into python:main Sep 23, 2025
@bedevere-app bedevere-app Bot removed the awaiting merge label Sep 23, 2025
@encukou

encukou commented Sep 23, 2025

Copy link
Copy Markdown
Member

Thank you!

ZeroIntensity reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ZeroIntensity
ZeroIntensity deleted the fix-failures branch September 23, 2025 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@encukou encukou encukou approved these changes
@ericsnowcurrently 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

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

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.

3 participants

@ZeroIntensity @bedevere-bot @encukou
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.