Skip to content

CASSSIDECAR-465: Improve HTTP 429 handling across sidecar server and … - #374

Open
arjunashok wants to merge 3 commits into
apache:trunkfrom
arjunashok:CASSSIDECAR-465-429-retry-handling
Open

CASSSIDECAR-465: Improve HTTP 429 handling across sidecar server and …#374
arjunashok wants to merge 3 commits into
apache:trunkfrom
arjunashok:CASSSIDECAR-465-429-retry-handling

Conversation

@arjunashok

Copy link
Copy Markdown
Contributor

…client

Changes

  • The sidecar's upload concurrency limiter returns 429, but BasicRetryPolicy had no case for it. As a result, clients failed after one attempt instead of backing off.
  • Adds 429 handling to BasicRetryPolicy (honors Retry-After, falls back to configured backoff); fixes a prerequisite bug in RequestExecutor.schedule() that fired retries immediately instead of waiting (this was silently breaking the existing 503 backoff too, independent of 429); adds a Retry-After header to the server's 429 response, via config: retry_after_seconds.
  • retryAfterSeconds() is a default interface method for backward compatibility

@arjunashok
arjunashok force-pushed the CASSSIDECAR-465-429-retry-handling branch from c50d0de to 99369f7 Compare August 10, 2026 20:58
@arjunashok
arjunashok marked this pull request as ready for review August 10, 2026 20:59

@yifan-c yifan-c left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fixes look good to me

Comment on lines -375 to +378
runnable.run();
else
{
runnable.run();
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wow. This is another bug that is more serious than 429 handling in client.

Comment thread CHANGES.txt Outdated
@@ -1,5 +1,6 @@
0.5.0
-----
* Improve HTTP 429 handling across sidecar server and client (CASSSIDECAR-465)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The patch include 2 fixes. I am fine with it. Just need to reflect it correctly in the change log.

Suggested change
* Improve HTTP 429 handling across sidecar server and client (CASSSIDECAR-465)
* Support retrying on HTTP 429 responses and fix duplicate immediate execution in RequestExecutor retry scheduling (CASSSIDECAR-465)

@arjunashok
arjunashok force-pushed the CASSSIDECAR-465-429-retry-handling branch from 99369f7 to 780a0de Compare August 12, 2026 17:49
@jyothsnakonisa
jyothsnakonisa self-requested a review August 12, 2026 18:06

@jyothsnakonisa jyothsnakonisa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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.

3 participants