Jun-Yuan commented on PR #378:
URL: 
https://github.com/apache/arrow-rs-object-store/pull/378#issuecomment-2901159348

   > Perhaps you could come up with a reproducer, I don't follow why this would 
change the behaviour. If hyper is able to classify the error we use the more 
precise classification (which may allow it to retry in more cases).
   > 
   > I wonder if what you're running into is actually #15
   
   No we are not running into #15. The error message we had is described in the 
issue #368
   `Service(ObjectStore(Generic { store: "S3", source: RetryError { method: 
PUT, uri: Some(XXX-REDACTED-XXX), retries: 0, max_retries: 3, elapsed: 
801.473µs, retry_timeout: 60s, inner: Http(HttpError { kind: Unknown, source: 
reqwest::Error { kind: Request, source: 
hyper_util::client::legacy::Error(SendRequest, hyper::Error(Io, Os { code: 104, 
kind: ConnectionReset, message: "Connection reset by peer" })) } }) } }))`
   
   The “unknown” indicates hyper is failing to classify more precisely so it’s 
getting swallowed and the proposed fix #351 doesn't completely fix it because 
of these early breaks, which, when successfully resolving `hyper::Error` it 
just simple breaks out the loop without even attempting to dive into `io` 
error. The rest of recursion is totally skipped, thus defeating the purpose of 
fix #351.
   
   I am unfortunately too tied to write up a reproducer test until some time 
later.  If this brings any attention to the matter and helps with other users,  
that would be great.
   
   


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