Repository navigation
fix(store): apply the configured retry budget to reads only - #45
Conversation
## Summary ### Why? Backend SDK retries covered conditional mutations as well as reads. If a manifest CAS landed but its response was lost, an SDK retry could receive 412 from the already-committed write and make the publisher treat success as a lost race. ### What? Apply `store.max_retries` only to idempotent GCS and S3 reads and interrupted bulk reads. Configure GCS mutation clients and the S3 mutation client for one attempt, while S3 metadata reads use a separate retry-enabled client and presigned GETs retain explicit bounded retries. Healthy calls remain one request. Failure paths add at most `store.max_retries` read attempts; conditional writes, uploads, copies, multipart operations, and deletes remain single-attempt. ## Test Plan ✅ `cargo check -p walgit-store --all-features` ✅ `cargo test -p walgit-store --all-features` ✅ `cargo test -p walgit-server --test sim healthy_request_round_trip_budgets -- --exact` ✅ `cargo clippy -p walgit-store --all-targets --all-features -- -D warnings` ✅ `cargo fmt --all -- --check` ✅ `git diff --check` ## Issue Closes tobi#82 (cherry picked from commit 34f240d) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
PR SummaryMedium Risk Overview GCS replaces hard-coded read/resume caps with Reviewed by Cursor Bugbot for commit cd0ab9d. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
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 59 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 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8fd1cb7. Configure here.
A conditional GET that misses fetches the body through a client that never retries, so a transient error on manifest.pb failed the read instead of spending store.max_retries. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

store.max_retrieswas ignored.