Skip to content

Apply configured store retry budget - #7

Closed
behinddwalls wants to merge 1 commit into
preetam/issue-81-git-binaryfrom
preetam/issue-82-store-retries
Closed

behinddwalls wants to merge 1 commit into
preetam/issue-81-git-binaryfrom
preetam/issue-82-store-retries

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Summary

Summary

Why?

store.max_retries was documented as an operator-controlled retry budget, but backend construction ignored it and GCS used fixed retry counts.

What?

Use the configured number of extra attempts for transient GCS metadata failures, interrupted GCS bulk reads, S3 SDK operations, and S3 HTTP GETs. Retry with bounded jittered backoff and preserve zero as the way to disable retries.

Healthy store calls remain one request. Only transient failure paths add up to store.max_retries attempts, and this change adds no CAS object or healthy-path round trip.

Test Plan

✅ cargo check -p walgit-store --all-features
✅ cargo test -p walgit-store --all-features bulk_read_resumes_after_mid_stream_cut
✅ cargo fmt --all -- --check
✅ git diff --check

Issue

Closes tobi#82

Test Plan

Issues

ISSUE-82

Stack

  1. Remove ineffective arbitrary-want setting #2
  2. Enforce global request limits #3
  3. Reject zero per-repo concurrency #4
  4. Complete protocol v2 object-info support #5
  5. Remove ignored Git binary setting #6
  6. @ Apply configured store retry budget #7
  7. Remove unused transport switches #8
  8. Ignore macOS Finder metadata #9

## Summary

### Why?

`store.max_retries` was documented as an operator-controlled retry budget, but backend construction ignored it and GCS used fixed retry counts.

### What?

Use the configured number of extra attempts for transient GCS metadata failures, interrupted GCS bulk reads, S3 SDK operations, and S3 HTTP GETs. Retry with bounded jittered backoff and preserve zero as the way to disable retries.

Healthy store calls remain one request. Only transient failure paths add up to `store.max_retries` attempts, and this change adds no CAS object or healthy-path round trip.

## Test Plan

✅ `cargo check -p walgit-store --all-features`
✅ `cargo test -p walgit-store --all-features bulk_read_resumes_after_mid_stream_cut`
✅ `cargo fmt --all -- --check`
✅ `git diff --check`

## Issue

Closes tobi#82
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@behinddwalls

Copy link
Copy Markdown
Owner Author

Superseded by upstream draft tobi#90.

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