-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
aws/request: Default Retryer does retry request body timeouts #1275
Comments
Thanks for the heads up on this @RendijsSmukulis I think this is an extension of logic added a few weeks ago to retry connection resets. I think we can add a case to the SDK's retrier logic to catch this case. |
Adds support for retrying temporary errors that occur during unmarshaling of a request's response body. Fix aws#1275
Hi @RendijsSmukulis Thanks for letting us know about this issue. I just merged in #1289 which adds support for retrying temporary error such as Client.Timeout that occur when the SDK is reading the response body. Let us know if you run into any additional issues, or have feedback. |
Version of AWS SDK for Go?
Release v1.6.2 (2016-12-08)
Version of Go (
go version
)?go1.8 windows/amd64
What issue did you see?
We've seen a number of failures when sending batches to Firehose that should have been retried, but were not.
Error in the logs:
My understanding is that this is caused by the timeout happening during the serializer reading the response body. If I simulate a response timing out by not even sending headers, I get this error:
which is retried by the Retryer logic.
Currently, retryer.go does not include the SerializationError in the retryableCodes map (as seen here), so either the
SerializationError
needs to be added to the Retryer's retryableCodes map, or the underlying code should throw RequestTimeout, not SerializationError when a read of response's body takes too long.The text was updated successfully, but these errors were encountered: