Repository navigation
test(net): cover lagging replicas on epoch wires - #6232
Conversation
Co-Authored-By: GPT-6 <noreply@openai.com>
Exercise IETF 17 and 22 beside lite-07 and mirror recovery from one original source in JS. Assert the complete resumed suffix and successor group exactly once and in order. Co-Authored-By: GPT-6 <noreply@openai.com>
|
Quest outcome: complete as test coverage. All three Rust wire cases and the JS same-source mirror pass; the full moq-net suite passed 2,865 tests (8 skipped), JS resume passed 69 tests, and type/quest checks passed. No API or wire change, no open decisions, and no suggested product follow-ups. Source is committed at 93f9319. Readiness remains blocked by the existing host restriction building the Nix runner image ( (Written by GPT-6) |
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. |
|
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 25 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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 13aae8d672
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
An empty channel or queue also matched a subscription that ended after catch-up. The source is still open, so assert the subscriber is open rather than merely idle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # quest/m1/README.md
…rename Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # quest/m1/README.md
# Conflicts: # quest/m1/README.md
Problem
The lagging same-epoch replica fixture covered only lite-07 and stopped after the successor group's first frame. IETF draft 17 and 22 use different resume request paths, so both need direct coverage.
Approach
Run the real-session fixture on all three protocols, asserting the interrupted suffix and complete successor group, timestamps, order, and no trailing delivery. Add a manual-clock JS mirror whose two replicas forward one original publisher's bytes, with a deterministic mid-group stall and session failure. Existing recovery passes without production changes. Remove the completed quest.
Current consumers are subscribers resuming through a warmed replica after their incumbent relay fails. The test fixtures exercise that existing behavior and run in the existing net CI suites.
Impact
Alternatives
Avoided a new JS transport latency API: a frame gate models the lag deterministically without changing production interfaces. No retry, sleep, or timeout was added.
Validation
just rs test -p moq-net: 2,865 passed, 8 skipped, including all three lagging-replica wire cases.bun test js/net/src/resume.test.ts: 69 passed.bun run --filter @moq/net check: passed.quest check: 452 documents valid; formatting and diff checks passed.mainat 43fc925 (which includes moq-dev/moq#6348): the threelagging_route_diescases pass, includingietf_17_resumes_after_a_lagging_route_dies;bun test js/net/src/resume.test.tspasses 83 tests after renamingclock.advanceAsyncto awaitedclock.advanceper moq-dev/moq#6222 (no logic change);just checkjs, rs, and quest modules pass.just ciselectsmoq-netand@moq/netfrom the changed files, so both fixtures run in the PR and merge-queue checks. The local flake module cannot build the runner image on this host (unshare: write failed /proc/self/uid_map); this PR does not touch the flake.Follow-ups
No product decisions or follow-up quests. Audited the in-flight resume end/dedup change; these tests do not duplicate its fixes or depend on them.
(Written by GPT-6 and Claude Opus 5.5)