Skip to content

quest: plan refusing a reused moq-transport alias at once - #8453

Merged
kixelated merged 1 commit into
mainfrom
quest-plan/ietf-alias-refuse
Nov 10, 2026
Merged

kixelated merged 1 commit into
mainfrom
quest-plan/ietf-alias-refuse

Conversation

@kixelated

@kixelated kixelated commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Plans one m1 quest, A reused moq-transport alias refuses its track at once, from moq-dev/moq#8402's follow-ups: when register_alias fails after a SUBSCRIBE_OK, the track is only aborted once the peer acknowledges the FIN, so a peer that never does leaves readers on a dead copy and a registered entry.

Decisions

  • Plan it: ✅ m1 [S] (rejected: m2, dropping it). A misbehaving peer can hold the state unboundedly, and the fix mirrors the existing refusal paths.

Impact

Public API: none. Wire: none. Quest files only.

(Written by Claude Opus 5.5 with medium effort)

🤖 Generated with Claude Code

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, medium effort
  • Session: 01a1c65c-34d6-7083-8a42-4d95623a52b5, round 1
  • Head: ac02934
  • Base: origin/main at b502dcd
  • Score: 10/10, The documentation-only change adds a follow-up plan and index entry consistent with the existing delayed-cleanup path, with no actionable defects.
  • Findings: none

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 10, 2026 16:48

@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 ac02934. No actionable findings in this documentation-only plan and index entry.

Direction: immediate cleanup for the nonfatal alias-binding refusal matches the neighboring refusal paths. The existing OnceStep::Unbound retains the track until cancellation completes; the proposed never-acknowledged-FIN test targets that failure. Preserve the separate fatal Error::Duplicate behavior for an alias naming a different track when implementing the plan.

Verification limits: GitHub-only static review of both changed files and the relevant register_alias, refusal, and Unbound paths in subscriber.rs. No builds, tests, or runtime reproduction performed.

@coderabbitai

coderabbitai Bot commented Nov 10, 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 11 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: e0676cb5-df09-441d-a4ae-04e23c15295f
Commits

Reviewing files that changed from the base of the PR and between 3ddc47f and ac02934.

Files selected for processing: 2

  • quest/m1/README.md
  • quest/m1/ietf-alias-refuse.md
  • 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

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ℹ️ No critical issues — one body-level note.

Reviewed changes

  • New quest plan — quest/m1/ietf-alias-refuse.md plans failing a rejected SUBSCRIBE_OK alias's readers, removing the subscription, and aborting the track before waiting on the peer's FIN acknowledgement, then deleting OnceStep::Unbound in favor of the existing OnceStep::Refuse path.
  • m1 index entry — quest/m1/README.md lists the quest with a matching one-line summary at its rank.

I checked the plan's premise against rs/moq-net/src/ietf/subscriber.rs at this head. The Unbound arm really does defer remove_subscribe and track.abort until cancelling.poll is ready, and Closing::poll resolves only once the peer acknowledges everything written. The property-refusal and error branches just above it already clean up first and return Refuse. Placement in m1 matches the additive-only rule, and [S] fits the change.

ℹ️ The PR body is missing its ## Models section

The body ends at ## Review with no ## Models, so the PR's size and the planning session's implementer line are not recorded. Comparable quest-plan PRs (#8415, #8422) carry it above their ## Review section.

Technical details
# Missing `## Models` in the PR body

## Affected sites
- PR #8453 body — goes from `## Impact` straight to `## Review`

## Required outcome
- Add a `## Models` section before `## Review` carrying `Size: S` and an `Implementer:` line for this session (the body credits Claude Opus 5.5 with medium effort).

Pullfrog  | Fix it ➔ | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 10, 2026
Merged via the queue into main with commit 103db76 Nov 10, 2026
10 checks passed
@kixelated
kixelated deleted the quest-plan/ietf-alias-refuse branch November 10, 2026 19:36
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