Skip to content

test(parity): classify stalled gap fixtures as timeouts - #10985

Closed
proggeramlug wants to merge 2 commits into
mainfrom
fix/10720-gap-wait-timeouts
Closed

proggeramlug wants to merge 2 commits into
mainfrom
fix/10720-gap-wait-timeouts

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #10720.

The thread-release fixture now waits for the thread count to return to its expected range. The stdin-backpressure fixture waits for the marker without turning a local deadline into a no-marker result, and no longer prints a fixture-watchdog result when a child stalls. The parity harness's existing timeout reports these failures as timeouts instead of output mismatches.

Verification:

  • node --experimental-strip-types test-files/test_gap_9592_child_timeout_threads.ts on macOS
  • The same fixture with Node 26 on Linux (perrymaster), exercising the /proc/self/task branch
  • node --experimental-strip-types test-files/test_gap_9493_child_stdin_backpressure.ts on macOS
  • git diff --check

Summary by CodeRabbit

  • Bug Fixes

    • Improved diagnostic accuracy for stalled thread-release and stdin-backpressure scenarios.
    • These cases are now reported as timeouts instead of parity mismatches caused by local deadlines.
    • Updated test behavior to wait for expected process and thread completion, reducing misleading failure results.
  • Documentation

    • Added a changelog entry describing the updated timeout reporting behavior.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 4dddcad2-36e7-4af0-bf88-62c0a5d59848

📥 Commits

Reviewing files that changed from the base of the PR and between c1569e2 and 01267ee.

📒 Files selected for processing (3)
  • changelog.d/10985-parity-fixture-timeouts.md
  • test-files/test_gap_9493_child_stdin_backpressure.ts
  • test-files/test_gap_9592_child_timeout_threads.ts

Included review availability: Your plan provides up to 8 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The two parity fixtures no longer use local deadlines to produce boolean results. They wait for completion conditions and let the parity harness classify stalled execution as a timeout.

Changes

Parity fixture timeout handling

Layer / File(s) Summary
Stdin backpressure marker wait
test-files/test_gap_9493_child_stdin_backpressure.ts, changelog.d/10985-parity-fixture-timeouts.md
The fixture removes its watchdog and waits unconditionally for the marker. The changelog documents the timeout classification.
Timeout thread release wait
test-files/test_gap_9592_child_timeout_threads.ts
The Linux fixture waits until timeout threads are released and then prints timeout threads released: true.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 01267

The fixtures classify stalled behavior as timeouts instead of false output mismatches, with no actionable merge-blocking risk remaining.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the test change and the new timeout classification for stalled gap fixtures.
Description check ✅ Passed The description explains the purpose, lists the fixture changes, references issue #10720, and provides concrete macOS and Linux verification steps. It is sufficiently complete despite not reproducing …
Linked Issues check ✅ Passed Issue #10720 requires both fixtures to avoid local wall-clock results and let the parity harness classify stalls as timeouts. In test_gap_9592_child_timeout_threads.ts, the Linux path now waits unti…
Out of Scope Changes check ✅ Passed The reviewed changes are limited to the two fixtures named by issue #10720 and a changelog entry that documents their timeout classification. The removed watchdog result, marker wait changes, and thre…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
✨ Finishing Touches 💡 1
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Landed on main in merge train 257 (#11039, v0.5.1640), main 990b3eeada.

Carried at head 01267ee777. CI on the train head passed every job except the known public-baseline lint step: all 6 gap shards, cargo-test, e2e-scoped, gc-stress, check, warnings and security-audit green.

This train was split by blast radius after an earlier 35-PR assembly hit five gap regressions: it carries only PRs touching no lowering path. Trains rebase-merge, so commits get new SHAs and GitHub cannot mark this merged. Closed as landed.

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.

Two more test_gap_ fixtures decide a printed boolean by wall clock (siblings of #10581)

1 participant