Skip to content

quest(test): abandon the unreproduced auth serve signal flake - #5707

Merged
kixelated merged 3 commits into
mainfrom
quest/m1/test-flakes-2/auth-serve-signals
Oct 16, 2026
Merged

kixelated merged 3 commits into
mainfrom
quest/m1/test-flakes-2/auth-serve-signals

Conversation

@kixelated

@kixelated kixelated commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Reproduction attempts

All passed, 0 failures:

Code Conditions Runs Slowest
current main nextest --stress-count 100 --test-threads 24, load avg ~164 on 24 cores 100 x 2 tests 0.39 s
current main full moq-cli nextest suite, load avg ~114 1 0.12 s
current main test binary loop, both binaries evicted from the page cache (POSIX_FADV_DONTNEED) each run, load avg ~170 65 ~1 s
flake-era b581c27ed nextest --stress-count 100, load avg ~86 100 x 2 tests 0.02 s
flake-era b581c27ed plain loop plus cold-cache loop, load avg ~95 70 <0.1 s

Phase timing of a bare moq auth serve under load: spawn to "auth server listening" 10-60 ms (100-160 ms cold), SIGTERM to exit 5-40 ms.

Reading the code turned up no cause either. Since #5575, Signals::new() installs both handlers before serve binds. Before it, the biased select polled shutdown_signal() first and installed both before the "listening" log. The exit path is a select return plus shutdown_background(). Nothing in either interval waits on anything that CPU or page-cache pressure could stretch toward 10 s. Memory pressure (swap) is the remaining environmental candidate, which I did not induce on the shared host.

The tests keep their bounds unchanged, and each wait has its own expect message (auth server never listened / moq ignored the signal). So a recurrence names the wait that expired and can get a fresh quest with that evidence.

Validation

  • quest check: passed
  • just check: not run (quest Markdown only, no code)

Public API

None.

Wire impact

None.

Decisions

Suggested follow-ups

  • moq auth serve logs the configured --listen address, so --listen 127.0.0.1:0 prints addr=127.0.0.1:0 instead of the bound port (rs/moq-cli/src/auth.rs, Serve::run). Logging listener.local_addr() makes port 0 usable. Recommendation: a small [XS] quest, or fold it into the next auth serve change.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits October 16, 2026 07:44
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
auth_serve_stops_on_sig{int,term} never failed again: not under load
averages of 100-175 on 24 cores, nor with both binaries evicted from the
page cache, on current main or on the flake-era b581c27. The slowest of
100 stressed runs took 0.39 s against the 10 s bound. The tests keep their
bounds and distinct expect messages, so a recurrence names its wait.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Outcome: the quest's first step (reproduce under load and record which wait expired) could not be completed. Across about 400 runs on current main and the flake-era b581c27ed, at load averages of 86-175 on 24 cores and with cold page caches, nothing failed. The slowest run took 0.39 s against the 10 s bound. This PR abandons the quest, pending the maintainer's call on abandon vs keep open.

(Written by Claude Opus 5.5)

@kixelated
kixelated marked this pull request as ready for review October 16, 2026 16:16
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T16:17:29.465161Z 5d8b4d8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 04f8bdb0-df57-488e-89ab-37f105654515
📥 Commits

Reviewing files that changed from the base of the PR and between ef21a30 and 5d8b4d8.

📒 Files selected for processing: 2
  • quest/m1/test-flakes-2/README.md
  • quest/m1/test-flakes-2/auth-serve-signals.md
💤 Files with no reviewable changes: 2
  • quest/m1/test-flakes-2/README.md
  • quest/m1/test-flakes-2/auth-serve-signals.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.

Walkthrough

The auth-serve signals quest document and its entry in the Required list were removed.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 5d8b4

The abandoned quest is no longer listed as required; the existing tests remain unchanged. This documentation-only change is mergeable after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly summarizes the main change: abandoning the unreproduced auth serve signal flake quest.
Description check Passed The description directly explains why the quest was abandoned, summarizes reproduction attempts, and documents validation and follow-up decisions.
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 0…
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: Docstring Coverage

Explanation

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 0 files.

✨ 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

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

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merging. Decision confirmed by the maintainer: abandon the quest rather than keep it open, matching #5648 for the sibling export exit flake.

  • Deletes quest/m1/test-flakes-2/auth-serve-signals.md and its line in the test-flakes-2 README; no other references remain.
  • Merged latest main; quest check passes.
  • Codex and CodeRabbit reviewed the head with no findings.
  • A recurrence names the expired wait through its expect message and can get a fresh quest with that evidence.

Suggested follow-up (not started): log listener.local_addr() in moq auth serve so --listen 127.0.0.1:0 prints the bound port.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge October 16, 2026 16:36
@kixelated
kixelated added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit eb73457 Oct 16, 2026
11 checks passed
@kixelated
kixelated deleted the quest/m1/test-flakes-2/auth-serve-signals branch October 16, 2026 17:05
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