Repository navigation
fix(stats): end a stats track whose frame outgrows the cache - #5826
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Quest outcome: (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 7 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. |
|
Merge summary: a stats flavor whose frame is over the 32 MB cache limit now ends with One choice made without asking: a new request for an ended flavor is refused with CI passed and Codex reviewed (written by Claude Opus 5.5) |
Main's #5826 ends any stats track whose frame outgrows the cache, so the prefix-only abort_oversized opt-in and its duplicate test are dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
A stats frame over
group::MAX_CACHE_BYTES(32 MB) used to be dropped with a debug log, leaving readers on the previous snapshot indefinitely.publisher.jsonnear 50k paths is the likely first hit.Now
Snapshot::updateaborts that flavor's track withFrameTooLarge(and any open delta group), so readers see the track end. Only the failing flavor ends: DEFLATE can shrink a frame too large for the plain track, so the.zsibling keeps updating. An ended flavor is skipped on later ticks (no repeated encode or log), and write failures now log at warn.A re-request for an ended flavor is refused with
NotFoundby the existing live-pair branch inadopt_pair/adopt_presence. Those comments called the branch unreachable, so I updated them.Quest: deletes
quest/m1/stats-frame-too-large.md. Prefix tracks from #5811 get the same rule if they publish throughTrackPair.API / wire impact
FrameTooLarge. Documented indoc/concept/stats.md.Tests
produce::tests::oversized_frame_aborts_only_its_flavor: the plain reader ends withFrameTooLarge, and the compressed reader decodes the oversized value and then a later update. The test fails without the abort.just checkpasses.Follow-ups
FrameTooLarge) instead ofNotFound.publisher.jsonscales past the cache limit, instead of only failing loudly.(written by Claude Opus 5.5)
🤖 Generated with Claude Code