Repository navigation
fix(downloader): preserve object sizes across replica failures - #155
Merged
Merged
Conversation
|
Merged
shikhar
pushed a commit
that referenced
this pull request
Sep 30, 2026
## 🤖 New release * `cachey`: 0.11.2 -> 0.11.3 <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.11.3](0.11.2...0.11.3) - 2026-09-29 ### Fixed - *(downloader)* preserve object sizes across replica failures ([#155](#155)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replica fallback can return HTTP 416 with a smaller or missing object size after an earlier replica reported a larger one. Keep the largest known size independently of error selection, so sequences such as
416(size=17) → 503 → 416(size=0 or unknown)retain17when the final error is a 416. Preserve existing error precedence and fallback behavior.Document that this reports the largest observed size without establishing replica agreement. Regression tests cover size orderings, empty and unknown sizes, intervening backend errors, and error precedence. A scripted SDK connector also exercises the full downloader path with 416 response headers.
Closes #153
Validation:
cargo nextest run --locked --all-features: 113 passed, 1 intentionally skipped; includes Docker integration tests.cargo +nightly fmt --checkcargo clippy --locked --all-features --all-targets -- -D warnings --allow deprecatedcargo deny check: passed with existing duplicate-dependency and unused-license-allowance warnings.