Skip to content

fix(quic): keep completion out of probe reset history - #6870

Merged
kixelated merged 5 commits into
mainfrom
quest/m0/nightly/competing-cubic
Oct 26, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest/m0/nightly/competing-cubic

Conversation

@kixelated

@kixelated kixelated commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

The nightly competing_cubic probe test treated stream completion as a reset. After a stream was acknowledged or freed, its expiry helper recorded the group's end time as a fake reset time. It then rejected older probe packets that were still in flight.

Approach

Record a reset time only when the helper actually resets the stream. The assertion against resending after a real reset stays, and every acceptance budget is unchanged.

This PR does not finish the quest. With the bookkeeping fixed, competing_cubic now gets far enough to fail its deadline budget. quest/m0/nightly/competing-cubic.md is rewritten to cover only that remaining lateness work, and the quest stays open until it is fixed.

Impact

  • Public API and wire: none. This changes test bookkeeping only; production probing is unchanged.

Alternatives

Changing which packets count as probes, or adding another group lifecycle state, would add complexity and still leave the false timestamp in place. Removing the fake reset time fixes the assertion failure that was confirmed.

Choices

  • ✅ Accept this isolated test fix now and keep the quest open for the deadline-budget lateness beside Cubic (the user's decision). The alternative was to hold this PR until both failures were fixed together.
  • Merged main after moq-dev/moq#6850 landed (no rebase). Its quest edits had been squash-merged, so conflicts resolved to main's version. The only exception is this PR's own quest.
  • The nightly epic's link to this quest now describes the remaining deadline-budget work.

Validation

  • Reproduced the original release failure. Temporary diagnostics showed the rejected probe was sent before the stream completed. The diagnostics were removed.
  • After the merge, ran the release probe suite with debug assertions and overflow checks and --no-fail-fast, as just rs quic-sim does. 12 of 13 passed. competing_cubic passes the reset assertion and fails only its deadline budget (probe.rs:596): over seeds 1 through 8, probing averages 413.6 late frames against 385.1 for the baseline. The budget is unchanged, and that failure is what the quest now covers.
  • After the merge, just check passed (Rust: 5976 tests, all passed) and quest check --base origin/main passed.

Follow-ups

(Written by Claude Opus 5.5)

kixelated and others added 4 commits October 25, 2026 21:38
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
@kixelated kixelated changed the title fix(quic): correct competing Cubic probe reset handling fix(quic): keep completion out of probe reset history Oct 26, 2026
Base automatically changed from quest/plan-complete-followups to main October 26, 2026 17:29
Rewrite the quest to the remaining deadline-budget lateness.

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

coderabbitai Bot commented Oct 26, 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 2 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
  • 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: cf9f4727-d706-472d-aab2-e40723e0c886
Commits

Reviewing files that changed from the base of the PR and between 802aa29 and e463f60.

Files selected for processing: 3
  • quest/m0/nightly/README.md
  • quest/m0/nightly/competing-cubic.md
  • rs/moq-quic/src/tests/probe.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 26, 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-26T18:44:19.023741Z e463f60 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 kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed head e463f60a328389e590950253997b2e4217f6060c against base 802aa29d7f686e09aaf21dade7dd6e048b704258.

No new actionable findings. In expire, leaving reset unset for acknowledged/freed streams correctly avoids comparing still-in-flight probes against an invented reset time. Actual resets still record now and retain the no-resend assertion. This one-line bookkeeping correction is the simpler direction; production probe behavior and acceptance budgets remain unchanged.

The documented Cubic deadline-budget failure remains open in the quest; this is not a claim that the nightly suite is green. No prior review findings to reconcile; the independent Codex summary also reports no findings.

Verification: GitHub-only static inspection of all three changed files, the surrounding test lifecycle, offset/acked/reset handling, and in-flight probe enumeration. I did not run tests or independently reproduce the reported lateness.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing e463f60a328389e590950253997b2e4217f6060c via the merge queue (squash).

  • Changes: the probe test's expiry helper records a reset time only on a real reset, so acknowledged or freed streams no longer reject still-in-flight probes. Production probing and acceptance budgets are unchanged.
  • Decision: land this isolated test fix now (the user's pick); quest/m0/nightly/competing-cubic.md stays open for the deadline-budget lateness beside Cubic, so nightly just rs quic-sim keeps failing on competing_cubic until that lands.
  • Reviews on this head: Codex (no findings) and the OpenAI review (no actionable findings). CI passed; quest check --base origin/main passed on the head.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit a8cab1e Oct 26, 2026
11 checks passed
@kixelated
kixelated deleted the quest/m0/nightly/competing-cubic branch October 26, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant