Skip to content

fix(heal): preserve timeout budget across retries - #6101

Merged
overtrue merged 1 commit into
rustfs:mainfrom
marshawcoco:fix/heal-retry-total-timeout
Aug 16, 2026
Merged

fix(heal): preserve timeout budget across retries#6101
overtrue merged 1 commit into
rustfs:mainfrom
marshawcoco:fix/heal-retry-total-timeout

Conversation

@marshawcoco

Copy link
Copy Markdown
Contributor

Related Issues

Related to #5950.

Summary of Changes

  • Carry the remaining configured execution timeout into each recoverable heal retry instead of resetting the full timeout for every attempt.
  • Treat an exhausted task timeout as terminal so it cannot be requeued with a fresh budget.
  • Preserve the existing request and serialization shape while adding regression coverage for successive retries and manager execution.

Verification

  • CARGO_TARGET_DIR=/data/rustfs-5950-pr-target /root/.local/bin/rustfs-cargo-safe test -p rustfs-heal --lib retry_request -- --nocapture --test-threads=1
  • CARGO_TARGET_DIR=/data/rustfs-5950-pr-target /root/.local/bin/rustfs-cargo-safe test -p rustfs-heal --lib timeout -- --nocapture --test-threads=1
  • CARGO_TARGET_DIR=/data/rustfs-5950-pr-target /root/.local/bin/rustfs-cargo-safe clippy -p rustfs-heal --all-targets -- -D warnings
  • /root/.local/bin/rustfs-cargo-safe fmt --all --check

Impact

Long-running heal operations now have one aggregate execution-time budget across recoverable retries. Queue wait semantics, configuration names, defaults, and wire formats are unchanged.

Additional Notes

N/A

@github-actions

Copy link
Copy Markdown
Contributor

CLA requirements are satisfied for this pull request.

@marshawcoco
marshawcoco force-pushed the fix/heal-retry-total-timeout branch from c8614d0 to 7599595 Compare August 15, 2026 14:09
@overtrue
overtrue merged commit 8d3511c into rustfs:main Aug 16, 2026
19 checks passed
@marshawcoco
marshawcoco deleted the fix/heal-retry-total-timeout branch August 16, 2026 04:26
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