aws-sdk-go icon indicating copy to clipboard operation
aws-sdk-go copied to clipboard

SDK does not gracefully identify and handle throttling from S3

Open ramielrowe opened this issue 3 years ago • 7 comments

Confirm by changing [ ] to [x] below to ensure that it's a bug:

Describe the bug AWS request module doesn't consider 503 SlowDown from S3 a "Retryable" or "Throttle" error. This seemingly means that the error is unhandled by the SDK.

Version of AWS SDK for Go? Tested against 1.38.66 (latest)

Version of Go (go version)? 1.16

To Reproduce (observed behavior) https://gist.github.com/ramielrowe/613bb5bc215e69ed715cdcc96490b2b7

In the above example, I've mocked up the error we are seeing. And there are two test cases showing that it is neither a "Retryable" or "Throttle" error. I've also mocked up two errors that do pass these conditions just to confirm these tests function.

Expected behavior The S3 client library should recognize and gracefully handle 503 SlowDown errors from S3.

Additional context We've recently scaled up some of our uploading and have found to be hitting 503 SlowDown errors in our usage of MultipartUploads. We are tweaking our application to hopefully prevent this issue, but would like to add retries and backoffs as a final safe guard against issues.

ramielrowe avatar Jun 24 '21 14:06 ramielrowe

Hi, is this still persisting with the newest version of SDK?

vudh1 avatar Apr 15 '22 19:04 vudh1

This issue has not received a response in 1 week. If you want to keep this issue open, please just leave a comment below and auto-close will be canceled.

github-actions[bot] avatar Apr 18 '22 00:04 github-actions[bot]

https://gist.github.com/ramielrowe/613bb5bc215e69ed715cdcc96490b2b7 has two test cases that still appear to fail on the latest release.

ramielrowe avatar Apr 18 '22 14:04 ramielrowe

@vudh1 Any update on this.

ramielrowe avatar May 12 '22 15:05 ramielrowe

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see. If you need more assistance, please either tag a team member or open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.

github-actions[bot] avatar May 12 '22 15:05 github-actions[bot]

@vudh1 For some more context on why I believe this is particularly painful is that during large multi-part uploads, the fact that this error isn't handled by the SDK means the entire upload needs to be restarted rather than just the individual part upload that failed. This is causing us to use much much more bandwidth/request volume than necessary to complete the overall upload.

ramielrowe avatar May 12 '22 15:05 ramielrowe

@vudh1 Hi, have you seen my previous comment? Wondering if there's any update on this.

ramielrowe avatar May 24 '22 16:05 ramielrowe

This is corrected in v2.

lucix-aws avatar Apr 17 '24 13:04 lucix-aws

Comments on closed issues are hard for our team to see. If you need more assistance, please either tag a team member or open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.

github-actions[bot] avatar Apr 17 '24 13:04 github-actions[bot]