johnnyg opened a new pull request, #445:
URL: https://github.com/apache/arrow-rs-object-store/pull/445

   # Which issue does this PR close?
   
   Closes #368.
   
   # Rationale for this change
   
   As described in #368 connection reset errors aren't being retried due to 
them being identified as `HttpErrorKind::Unknown` rather than 
`HttpErrorKind::Interrupted`. This is because the `reqwest::Error` has kind 
unknown and its immediate source error is a generic `Request` error however if 
you continue following the error source we eventually get to a 
`std::io::ErrorKind::ConnectionReset` error.
   
   # What changes are included in this PR?
   
   Currently we stop refining the HTTP error kind once we've been able to 
downcast the error to either a `hyper::Error` or `std::io::Error` regardless of 
whether or not we were able to provide a more useful error kind.
   This PR changes that so that we keep on refining until we are able to 
provide a more useful error kind (i.e. not unknown) or we run out of nested 
errors to check. Because we are only refining while the error kind is unknown, 
we are not going to accidentally override a more specific error kind with a 
more generic one.
   
   A test is also included which demonstrates the fix and prevents future 
regressions.
   
   # Are there any user-facing changes?
   
   No.


-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to