aaltshuler commented on issue #737:
URL: 
https://github.com/apache/arrow-rs-object-store/issues/737#issuecomment-5362075063

   We hit the same boundary while adding typed storage failures downstream.
   
   With `object_store` 0.13.2, the public `HttpErrorKind` is sufficient for 
transport failures (`Connect`, `Request`, `Timeout`, and `Interrupted`). It is 
not sufficient for exhausted HTTP responses: a real S3-compatible 408, 429, 
500, 502, 503, or 504 becomes `object_store::Error::Generic -> RetryError -> 
RequestError::Status`, while the `client::retry` module is private.
   
   We pinned this with a local HTTP responder and `AmazonS3Builder` configured 
for one retry. Downstream can prove that the public error is `Generic`, but 
cannot inspect the status without parsing display text, so we must 
conservatively classify all six as unknown.
   
   An `Error::is_temporary()` / retry-disposition API would solve our use case. 
Exposing a stable typed cause/status for exhausted requests would also work and 
would preserve the distinction between "the provider already retried this" and 
"the caller is authorized to replay the larger operation."
   


-- 
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]

Reply via email to