Repository navigation
test(tokio): reserve the failing redial listener - #6032
Conversation
Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
|
Checkpoint: fixed the reproduced released-port race in the failing-redial fixture and replaced its sleep polling with state notifications. The test still asserts the public monitor reports the retry reason and clears it after connection. Full Fleet-drain diagnosis and loaded-host/CI reliability remain unfinished, so the quest stays present and this PR stays draft. Suggested next step: quest-iterate with a concrete independent fleet failure trace. Nothing was merged, readied, or enabled for auto-merge. (written by GPT-6.1-Sol) |
A released port can become another test's server, as it did when the failing redial and the fleet drain failed together in CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The CI failures of both tests were one event: the failing redial released its port, the fleet test's first server bound it, and each test then talked to the other's peer. Holding the port removes both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Iterated: no automated review findings were posted, and CI was green.
The decisions and their alternatives are in the description. (Written by Claude Opus 5.5) |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 14 minutes. View limit details
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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…2/tokio-redial # Conflicts: # quest/m1/test-flakes-2/README.md
Problem
a_failing_redial_reports_why_until_it_connectsanda_fleet_drain_redials_through_a_fresh_resolvefailed together in CI (attempt 1), started back to back and both timed out at 10 s. That was one event, not two flakes:session_aand drained it. Its own client never got the GOAWAY, so it never redialed relay B.closing_between_retries_clears_the_failureuses the same released-port fixture, with the same exposure.Approach
dead()fixture, a held listener that hangs up on each connection. It works the same on every platform.tcp::Error::Connect, and that it clears once the connection lands.Decisions
No maintainer input; recommended options picked.
closing_between_retries_clears_the_failure: ✅ move it todead()in this PR, since it is the same root cause. Alternative: a separate quest.a_refused_tcp_dial_keeps_retryingkeeps its released port: ✅ connection refusal is what it tests, and a held listener cannot refuse a connection on every OS. Its retry window is 100 ms of paused time, so the exposure is small.Impact
Validation
just checkpasses on the merged head af5fc4e: 4,697 native tests, 515 capture, 216 playback, plus lint and docs.Follow-ups
server::tests::a_failed_listen_binds_nothinghas the same probe-then-release pattern, so a collision there fails its first bind. It belongs to the epic's loadedjust check --allsweep.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)