-
Notifications
You must be signed in to change notification settings - Fork 668
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
waiters always retry on error, regardless of type #2937
Comments
Hello @goro9, thanks for reaching out and reporting the issue. I have replicated from my side and yes Go SDK is not retrying as it should. Meanwhile trying with Python SDK, it does make a retry. In this regard, I have brought this issue to the team for further review. I will let you know as soon as I get any updates. If you have any question let me know. Thanks. |
Based on waiter workflow it seems like we're not doing the right thing. We need to address this and figure out if it's safe to roll out. Need to also do some investigation around waiters on other services |
Waiter workflow step 4:
Our implementation, for reasons probably lost to time, is just not doing this. We can change it, trivially, but that comes with risk. Basically, any scenario where a waiter is called, some transient non-matching errors come back, and then a match does eventually come back would be broken. They would now fail on the unmatched error, as the spec says they should, instead of ignoring it. Whether or not anyone in the wild depends on that behavior, it's impossible to say. The other option would be to let users enable the "on-spec" behavior through a new flag. Not at all a fan of having what would essentially be |
This issue is now closed. Comments on closed issues are hard for our team to see. |
Acknowledgements
go get -u github.com/aws/aws-sdk-go-v2/...
)Describe the bug
It seems that the
ObjectExistsStateRetryable
used by default inNewObjectExistsWaiter
is being retried for errors other than NotFound.aws-sdk-go-v2/service/s3/api_op_HeadObject.go
Lines 915 to 930 in 3cc2195
Regression Issue
Expected Behavior
For NotFound errors: retry HeadObject
For errors other than NotFound: return err as is
Current Behavior
Always retry when an error occurs, regardless of the error type.
Reproduction Steps
Possible Solution
No response
Additional Information/Context
No response
AWS Go SDK V2 Module Versions Used
Compiler and Version used
go version go1.23.4 darwin/arm64
Operating System and version
macOS Sonoma 14.1
The text was updated successfully, but these errors were encountered: