Skip to content

Count all extents in bounded object repair reports - #306

Merged
matrixarkai merged 1 commit into
mainfrom
fix/bounded-object-repair-totals
Oct 28, 2026
Merged

matrixarkai merged 1 commit into
mainfrom
fix/bounded-object-repair-totals

Conversation

@matrixarkai

Copy link
Copy Markdown
Owner

An object with three mapped pages across two extents reported only two repair candidates when the first extent exhausted the repair budget. The loop now continues counting later extents without repairing them. Candidate bytes include the entire requested range, including pages before a continuation cursor; selected and skipped work remain separate and the repair limit still bounds writes.

The existing cursor regression now checks exact totals and skipped bytes on every pass, one restored replica per call, and remaining damage before any read can heal it. Additional checks cover an offset subrange, an exhausted cursor, and rejection of an invalid cursor without repairs. This test now runs explicitly in CI and the contributor guide records 135 named library guards.

The original failure was reproduced before the fix. All 28 repair tests pass with default features and all features; workflow and contributor guards and all-feature/all-target checks pass. The full all-feature library suite reports 531 passing, 2 failing and 28 ignored tests. The remaining failures are batched metadata-head accounting expectations and the distributed-readiness format assertion. Full distributed production readiness remains unfinished.

@matrixarkai
matrixarkai merged commit fc5ce1f into main Oct 28, 2026
5 checks passed
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.

2 participants