-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
storage: Add exponential backoff for REFUSED_STREAM errors #701
Comments
Go won't have this until at least Go 1.10 so it makes sense to do it in the GCS library temporarily for 12-18 months until most Go users have the automatic version. |
@jba seems like we could just kill the check for if the error is a *googleapi.Error, no? Why is that there anyway? https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/storage/invoke.go#L32-L35 |
@jba Is there a recommended strategy for handling this "issue" with GCS somewhere by the way? |
@lhecker I was planning on following the same logic that will be in Go 1.10. |
@jba Thanks for the fix! We'll soon try it out again in production. 🙂 |
You may be right; I don't know what's happening at the server. |
This is an auto-generated regeneration of the gapic clients by cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is submitted, genbot will update this PR with a newer dependency to the newer version of genproto and assign reviewers to this PR. If you have been assigned to review this PR, please: - Ensure that the version of genproto in go.mod has been updated. - Ensure that CI is passing. If it's failing, it requires your manual attention. - Approve and submit this PR if you believe it's ready to ship. Corresponding genproto PR: googleapis/go-genproto#759 Changes: chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub)!: removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (#700) Source-Link: googleapis/googleapis@249e9a1
This is an auto-generated regeneration of the gapic clients by cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is submitted, genbot will update this PR with a newer dependency to the newer version of genproto and assign reviewers to this PR. If you have been assigned to review this PR, please: - Ensure that the version of genproto in go.mod has been updated. - Ensure that CI is passing. If it's failing, it requires your manual attention. - Approve and submit this PR if you believe it's ready to ship. Corresponding genproto PR: googleapis/go-genproto#760 Changes: feat(osconfig/agentendpoint): Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message PiperOrigin-RevId: 428781221 Source-Link: googleapis/googleapis@f158f82 feat(servicemanagement)!: Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: PiperOrigin-RevId: 428693468 Source-Link: googleapis/googleapis@42a19d6 fix(security/privateca): Add google-cloud-location as a dependency for the privateca client PiperOrigin-RevId: 428624147 Source-Link: googleapis/googleapis@d19f69b chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub)!: removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (#700) Source-Link: googleapis/googleapis@249e9a1
This is an auto-generated regeneration of the gapic clients by cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is submitted, genbot will update this PR with a newer dependency to the newer version of genproto and assign reviewers to this PR. If you have been assigned to review this PR, please: - Ensure that the version of genproto in go.mod has been updated. - Ensure that CI is passing. If it's failing, it requires your manual attention. - Approve and submit this PR if you believe it's ready to ship. Corresponding genproto PR: googleapis/go-genproto#760 Changes: feat(osconfig/agentendpoint): Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message PiperOrigin-RevId: 428781221 Source-Link: googleapis/googleapis@f158f82 feat(servicemanagement)!: Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: PiperOrigin-RevId: 428693468 Source-Link: googleapis/googleapis@42a19d6 fix(security/privateca): Add google-cloud-location as a dependency for the privateca client PiperOrigin-RevId: 428624147 Source-Link: googleapis/googleapis@d19f69b chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub)!: removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (#700) Source-Link: googleapis/googleapis@249e9a1
* chore(all): auto-regenerate gapics This is an auto-generated regeneration of the gapic clients by cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is submitted, genbot will update this PR with a newer dependency to the newer version of genproto and assign reviewers to this PR. If you have been assigned to review this PR, please: - Ensure that the version of genproto in go.mod has been updated. - Ensure that CI is passing. If it's failing, it requires your manual attention. - Approve and submit this PR if you believe it's ready to ship. Corresponding genproto PR: googleapis/go-genproto#760 Changes: feat(osconfig/agentendpoint): Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message PiperOrigin-RevId: 428781221 Source-Link: googleapis/googleapis@f158f82 feat(servicemanagement): Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: PiperOrigin-RevId: 428693468 Source-Link: googleapis/googleapis@42a19d6 fix(security/privateca): Add google-cloud-location as a dependency for the privateca client PiperOrigin-RevId: 428624147 Source-Link: googleapis/googleapis@d19f69b chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub): removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (#700) Source-Link: googleapis/googleapis@249e9a1 * go mod tidy Co-authored-by: Cody Oss <[email protected]> Co-authored-by: Cody Oss <[email protected]>
Some extra trailers got added to the regen commit so RP could not process them. Re-listing the changes made in googleapis#5659 so they can get picked up. Changes: feat(osconfig/agentendpoint): Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message PiperOrigin-RevId: 428781221 Source-Link: googleapis/googleapis@f158f82 feat(servicemanagement): Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: PiperOrigin-RevId: 428693468 Source-Link: googleapis/googleapis@42a19d6 fix(security/privateca): Add google-cloud-location as a dependency for the privateca client PiperOrigin-RevId: 428624147 Source-Link: googleapis/googleapis@d19f69b chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (googleapis#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub): removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (googleapis#700) Source-Link: googleapis/googleapis@249e9a1
Some extra trailers got added to the regen commit so RP could not process them. Re-listing the changes made in #5659 so they can get picked up. Changes: feat(osconfig/agentendpoint): Add fields to RegisterAgentRequest: - supported_capabilities - os_long_name - os_short_name - os_version - os_architecture feat: Add field to PatchConfig message: - mig_instances_allowed fix: Add NONE Interpreter enum value that should be used over INTERPRETER_UNSPECIFIED in ExecStepConfig message PiperOrigin-RevId: 428781221 Source-Link: googleapis/googleapis@f158f82 feat(servicemanagement): Remove EnableService and DisableService RPC methods and related protos from service management API BREAKING CHANGE: PiperOrigin-RevId: 428693468 Source-Link: googleapis/googleapis@42a19d6 fix(security/privateca): Add google-cloud-location as a dependency for the privateca client PiperOrigin-RevId: 428624147 Source-Link: googleapis/googleapis@d19f69b chore(video/livestream): Configure Ruby generator for Video Live Stream clients PiperOrigin-RevId: 428111509 Source-Link: googleapis/googleapis@7c7a99a chore(servicemanagement): cleanup unused imports in google/api/servicemanagement/v1 PiperOrigin-RevId: 428077790 Source-Link: googleapis/googleapis@4807247 chore(dataplex): Configure Ruby generator for Dataplex clients PiperOrigin-RevId: 428067759 Source-Link: googleapis/googleapis@1798403 fix(compute): fix breaking changes in Compute API (#701) Source-Link: googleapis/googleapis@272c110 fix(pubsub): removing misspelled field, add correctly spelled field PiperOrigin-RevId: 428023165 Source-Link: googleapis/googleapis@63d374d fix(osconfig/agentendpoint): Fix description of an interpreter field, validate if the field is not unspecified PiperOrigin-RevId: 427987153 Source-Link: googleapis/googleapis@a1b62c1 fix(osconfig/agentendpoint): update third_party protos to the most actual version: - Add item that is affected by vulnerability - Add GetOsPolicyAssignmentReport and analogous List rpc method - Add Inventory to InstanceFilter - Add existing os_policy_assignment_reports.proto fixing the build - Mark methods as deprecated PiperOrigin-RevId: 427981818 Source-Link: googleapis/googleapis@0b2c906 feat(compute): update compute API to revision 20220112 (#700) Source-Link: googleapis/googleapis@249e9a1
We're currently facing issues with GCS in production returning
REFUSED_STREAM
errors sporadically.Would it be feasible to add the already existing exponential backoff logic (on 5xx and 429 errors) to
REFUSED_STREAM
errors as well?It's currently in discussion for Go to add official support for this in golang/go#20985, but until then it'd be awesome if the Google Cloud client libraries could already implement this manually.
What do you think? 🙂
The text was updated successfully, but these errors were encountered: