stevenpall commented on PR #64758:
URL: https://github.com/apache/doris/pull/64758#issuecomment-4805696337

   Answering the PR checklist:
   
   **1. What problem was fixed, and how.** The cloud recycler's S3 client in 
`S3Accessor::init()` (`cloud/src/recycler/s3_accessor.cpp`) builds an 
`Aws::Client::ClientConfiguration` that never sets `requestTimeoutMs`, so it 
keeps the SDK default of 3000 ms. The vendored aws-sdk-cpp maps that onto 
`CURLOPT_LOW_SPEED_TIME=3` + `CURLOPT_LOW_SPEED_LIMIT=1`, so any 
`DeleteObjects` that cannot sustain >1 byte/s for 3 s is aborted with curl 
error 28 (`responseCode=-1 error="curlCode: 28, Timeout was reached"`). On 
object stores with higher per-request latency the recycler wedges: every 
`delete_rowset_data`/`DeleteObjects` aborts at 3 s, the delete budget is spent 
on timed-out ops, and the orphan backlog never drains. Fixed by setting 
`requestTimeoutMs = 30000` and `connectTimeoutMs = 5000` on that client — the 
same root cause and fix as #49315, which set `requestTimeoutMs = 30000` for the 
BE in `be/src/util/s3_util.cpp` but missed the cloud recycler's separate client.
   
   **2. Which behaviors were modified.** Only the per-request timeout of the 
recycler's S3 client. Before: the curl low-speed abort fires at 3 s, failing 
slow/large DeleteObjects with curlCode 28. After: a request has 30 s (connect 5 
s) before aborting, matching the BE. No change for fast object stores, which 
complete well under 3 s either way; `MaxDeleteBatch` and all other recycler 
logic are untouched.
   
   **3–5 (new feature / refactor / optimization).** N/A — this is a one-line 
timeout-config bugfix in the recycler S3 client path, with no new 
functionality, refactoring, or algorithmic change.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to