Skip to content

test(net): verify the front expiry index and close its duplicate quest - #5763

Merged
kixelated merged 4 commits into
mainfrom
quest/m2/front-deadline-index
Oct 17, 2026
Merged

kixelated merged 4 commits into
mainfrom
quest/m2/front-deadline-index

Conversation

@kixelated

@kixelated kixelated commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

The front deadline quest still describes scans already removed by #5240: parked expiries are indexed in a BTreeSet, and the driver polls a deduplicated ready queue per track. Its plan would reimplement that optimization. Only its regression test (the index agrees with a full scan across random transitions) was never written.

Approach

  • Remove the completed quest and its references.
  • Add a seeded regression that checks the expiry index and next deadline against a full track scan through 4,096 assignment, demand, expiry, and source-info transitions across 32 tracks.
  • Run the same scan check after every step of the exhaustive walk (bounded_sequences_hold_the_invariants). Route-wide events (selection, resolution, source close) skip the index update by design, and the seeded test only sends track events, so before this a route-wide event that unparked a track passed every front test. The walk covers every event kind and now catches it.

Impact

  • Public API: none. Wire: none. Production behavior and benchmark coverage are unchanged.
  • Existing nightly session churn sweeps sessions (1/4/16) and held tracks (1/64/1024); origin/copy_walk retains the route-swap regression sweep.

Validation

  • All 41 model::front tests pass; clippy and fmt are clean.
  • Fault injection: dropping index removal or insertion fails the seeded test (and most existing front tests). Making drain_copies unpark tracks fails only the walk's new check.
  • The earlier TS validation failure on bc5e43e (video-content: "decoded pictures are not an intact suffix of the source") is the known TS export flake fixed on main by fix(ts): start an export on a whole group and count every drop #5713. This branch now includes main.

The optimization evidence belongs to merged #5240: its four-session Lite measurements changed from 0.392/0.770/10.861 ms to 0.391/0.394/0.408 ms at 1/64/1024 held tracks.

Decisions (made unattended, recommended option)

  • Strengthen coverage of the existing index instead of adding a second index or wake mechanism. ✅ Test only / Rework the index
  • Check the index inside the exhaustive walk rather than widening the seeded test's alphabet to route-wide events. ✅ Walk check (reuses its route-id rules) / Wider seeded alphabet

Follow-ups

Route-wakes and requester-specific front parking remain separate quests.

(Written by Claude Opus 5.5)

@kixelated

Copy link
Copy Markdown
Collaborator Author

The duplicate optimization is already present in merged #5240. This draft adds the missing expiry-index invariant coverage and removes the stale quest. All 2,262 moq-net tests and just ci check pass; fault injection makes the new regression fail.

The full just check stopped on the unchanged GStreamer test a_refused_redial_posts_a_bus_error_after_playback, which failed rebinding its relay with AddrInUse at source/imp.rs:2950. Recommended: keep this draft and address the test's port handoff separately. No retry, sleep, or unrelated source change was added.

(written by GPT-6)

kixelated and others added 2 commits October 16, 2026 17:29
Route-wide events skip the index update by design, and the seeded test
only sends track events, so a route-wide event that unparked a track went
unnoticed by every front test. Share the scan check with the walk, which
covers every event kind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review October 17, 2026 00:35
@coderabbitai

coderabbitai Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You'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 10 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 71036457-7e4e-45a6-866b-e69791197b3d
📥 Commits

Reviewing files that changed from the base of the PR and between b7d7e99 and ee78fc9.

📒 Files selected for processing: 4
  • quest/m2/README.md
  • quest/m2/front-deadline-index.md
  • quest/m2/route-wakes.md
  • rs/moq-net/src/model/front.rs
  • 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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 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-17T00:38:47.703564Z ee78fc9 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.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary for ee78fc9:

  • Removes the front deadline quest, whose index and per-track wakes already shipped in perf(net): keep request churn independent of held tracks #5240.
  • Adds a seeded regression that checks the expiry index against a full scan, and runs the same check in the exhaustive front walk so route-wide events (which skip the index update) are covered too.
  • The earlier TS validation failure was the TS export flake fixed on main by fix(ts): start an export on a whole group and count every drop #5713; main is merged in.
  • Decisions (recommended options): test-only, no second index; check the index in the walk rather than widening the seeded alphabet.
  • Public API and wire: none. CI green, just check passes locally, Codex review of this head has no findings.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 17, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Oct 17, 2026
@kixelated
kixelated added this pull request to the merge queue Oct 17, 2026
Merged via the queue into main with commit d34caf3 Oct 17, 2026
14 checks passed
@kixelated
kixelated deleted the quest/m2/front-deadline-index branch October 17, 2026 05:13
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