-
Notifications
You must be signed in to change notification settings - Fork 247
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
DispatchFailure: HTTP/2 REFUSED_STREAM should be retried #858
Comments
Hey @FSMaxB, thanks for submitting this issue. We'll add it to our backlog. |
Might also be this issue: hyperium/h2#707 I'll report back wether that already fixes it once I have that version running in production. |
This PR adds two additional classes of retries tested: 1. GO_AWAY: awslabs/aws-sdk-rust#738 2. REFUSED_STREAM: awslabs/aws-sdk-rust#858 I tested 1 by using the example helpfully provided. The fix for 2 is untested and difficult to reproduce but since my fix for 1 worked, I'm confident that we're detecting the correct error class here.
The new |
This PR adds two additional classes of retries tested: 1. GO_AWAY: awslabs/aws-sdk-rust#738 2. REFUSED_STREAM: awslabs/aws-sdk-rust#858 I tested 1 by using the example helpfully provided. The fix for 2 is untested and difficult to reproduce but since my fix for 1 worked, I'm confident that we're detecting the correct error class here.
This PR adds two additional classes of retries tested: 1. GO_AWAY: awslabs/aws-sdk-rust#738 2. REFUSED_STREAM: awslabs/aws-sdk-rust#858 I tested 1 by using the example helpfully provided. The fix for 2 is untested and difficult to reproduce but since my fix for 1 worked, I'm confident that we're detecting the correct error class here.
Draft pull request pending merge of #2970 ## Motivation and Context - awslabs/aws-sdk-rust#738 - awslabs/aws-sdk-rust#858 <!--- Why is this change required? What problem does it solve? --> <!--- If it fixes an open issue, please link to the issue here --> ## Description <!--- Describe your changes in detail --> This PR adds two additional classes of retries tested: 1. GO_AWAY: awslabs/aws-sdk-rust#738 2. REFUSED_STREAM: awslabs/aws-sdk-rust#858 I tested 1 by using the example helpfully provided. The fix for 2 is untested and difficult to reproduce but since my fix for 1 worked, I'm confident that we're detecting the correct error class here. ## Testing I used the example provided by the customer and validated the H2 GO_AWAY fix. ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
Built-in retry was added for this error in the December 5, 2023 release. |
|
Describe the bug
We regularly get an HTTP/2
REFUSED_STREAM
error in production when deleting S3 blobs. This error means that a request should be retried, so I'm opening an issue based on the following warning that was emitted:See https://datatracker.ietf.org/doc/html/rfc9113#REFUSED_STREAM and https://datatracker.ietf.org/doc/html/rfc9113#Reliability saying that such requests can be safely retried.
Expected Behavior
When calling
DispatchFailure::other
, it should have returnedSome
. Unclear whichErrorKind
exactly, but probablyErrorKind::ServerError
.Current Behavior
When calling
DispatchFailure::other
, it returnsNone
.Reproduction Steps
I haven't found a way to reproduce this yet, I can only see it in production sometimes when using
aws-sdk-s3
against the google cloud storage API.Possible Solution
Treat the
REFUSED_STREAM
error asaws_smithy_types::retry::ErrorKind::ServerError
Additional Information/Context
No response
Version
Environment details (OS name and version, etc.)
Docker on Linux (not really relevant)
Logs
As shown above:
The text was updated successfully, but these errors were encountered: