Skip to content

test-lints.test.py stalls just check on a busy host - #8529

Open
kixelated wants to merge 2 commits into
mainfrom
quest/m0/test-lints-hang
Open

kixelated wants to merge 2 commits into
mainfrom
quest/m0/test-lints-hang

Conversation

@kixelated

@kixelated kixelated commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

sh/rs/test-lints.test.py has a fail-fast test that runs just rs test and sh/rs/nextest.sh against a probe crate across 18 subtests. Its env did not set LOCAL_SUPERVISED, so each nested run went through sh/local.sh and waited on quest gate for host room. On a busy host the test stalled, which stalled just check. Before the fix, the test timed out at 240 s.

Approach

Set LOCAL_SUPERVISED="1" in the test's env, the same way test_clippy_warning_fails_test_build already does. The nested runs execute directly, and the fail-fast behavior under test is unchanged.

This PR also deletes the finished quest file quest/m0/test-lints-hang.md.

Impact

None: no public API or wire change.

Alternatives

  • Raise the test's timeout. That hides the wait, and the wait still grows with host load.
  • Make quest gate skip inside tests. That changes gating for every caller, when only this test's nested runs need to skip it.

Follow-ups

None.

Validation

  • Before the fix: python3 sh/rs/test-lints.test.py timed out at 240 s (EXIT=124).
  • After the fix: EXIT=0 in 37 s, 2 tests OK.
  • Under 24 busy-loop processes: EXIT=0 in 27 s.
  • Most of each time is cargo compiling the probe crate, so these runs show the stall is gone. They are not a speed benchmark.
  • just check: EXIT=0, run before the quest file was deleted.
  • just ci on the committed head: EXIT=0 in 378 s, including python3 sh/rs/test-lints.test.py (Ran 2 tests, OK).

Caused by

  • moq-dev/moq#7844 - added the fail-fast env without LOCAL_SUPERVISED, so its nested runs waited on quest gate

Models

Size: XS
Implementer: Claude, claude-haiku-5-5, xhigh effort

🤖 Generated with Claude Code

(Written by Claude Haiku 5.5 with xhigh effort)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, low effort
  • Session: 01a1cd6a-dadc-7161-8892-0481f2153ebd, round 1
  • Head: 0efbd65
  • Base: origin/main at 2882d4b
  • Score: 10/10, The environment override directly addresses the documented stall with minimal scope, preserves the nextest assertions, and matches the existing Clippy fixture; builds and tests were not run, as instructed.
  • Findings: none

kixelated and others added 2 commits November 11, 2026 16:57
test_fail_fast_environment_reaches_nextest ran its 20 nested
`just rs test` and `sh/rs/nextest.sh` invocations without
LOCAL_SUPERVISED=1, so each one waited on `quest gate` for host room.
On a busy host the script stalled for minutes. Set it as the clippy
probe already does.

Caused by #7844.

Also deletes the finished quest quest/m0/test-lints-hang.md.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 12, 2026 01:44
@coderabbitai

coderabbitai Bot commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The TestLints fixture now sets LOCAL_SUPERVISED=1 in the environment passed to its subprocesses. The document describing the test-lint stall diagnosis and proposed environment change is removed.

Merge Risk: Minimal · up to 0efbd

This change stops the lint fail-fast test from stalling on busy hosts and leaves the test's behavior otherwise unchanged. No merge-blocking risk was found.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: the test-lints.test.py test stalled just check on a busy host. The PR sets LOCAL_SUPERVISED="1" in that test's env so nested runs skip quest gate, which fixes the stal…
Description check Passed The description explains the problem (the fail-fast test lacked LOCAL_SUPERVISED, so nested runs waited on quest gate on a busy host), the approach (set LOCAL_SUPERVISED="1" in the test env), the dele…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: the test-lints.test.py test stalled just check on a busy host. The PR sets LOCAL_SUPERVISED="1" in that test's env so nested runs skip quest gate, which fixes the stall. The title is specific and matches the changeset.

Full details: Description check

Explanation

The description explains the problem (the fail-fast test lacked LOCAL_SUPERVISED, so nested runs waited on quest gate on a busy host), the approach (set LOCAL_SUPERVISED="1" in the test env), the deletion of quest/m0/test-lints-hang.md, validation runs, and the causing PR. It directly describes the changeset.

Finishing Touches

Simplify code

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 45c1775f-57e4-49c0-8559-f8e3357a4f87
Commits

Reviewing files that changed from the base of the PR and between 4262a06 and 0efbd65.

Files selected for processing: 2

  • quest/m0/test-lints-hang.md
  • sh/rs/test-lints.test.py
Files with no reviewable changes: 1

  • quest/m0/test-lints-hang.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review.

This branch has not been deployed

No deployments
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.

1 participant