s3_client: Disable Seastar-level retries in HTTP client creation

Prevent Seastar from retrying HTTP requests to avoid buffer double-feed
issues when an entire request is retried. This could cause data
corruption in `chunked_download_source`. The change is global for every
instance of `s3_client`, but it is still safe because:
* Seastar's `http_client` resets connections regardless of retry behavior
* `s3_client` retry logic handles all error types—exceptions, HTTP errors,
  and AWS-specific errors—via `http_retryable_client`

(cherry picked from commit fc2c9dd290)
This commit is contained in:
Ernest Zaslavsky
2025-07-08 09:55:19 +03:00
committed by GitHub Action
parent fdf706a6eb
commit e45852a595

View File

@@ -204,7 +204,7 @@ future<semaphore_units<>> client::claim_memory(size_t size) {
}
client::group_client::group_client(std::unique_ptr<http::experimental::connection_factory> f, unsigned max_conn, const aws::retry_strategy& retry_strategy)
: retryable_client(std::move(f), max_conn, map_s3_client_exception, http::experimental::client::retry_requests::yes, retry_strategy) {
: retryable_client(std::move(f), max_conn, map_s3_client_exception, http::experimental::client::retry_requests::no, retry_strategy) {
}
void client::group_client::register_metrics(std::string class_name, std::string host) {