Skip to content

Conversation

@coryan
Copy link
Collaborator

@coryan coryan commented Aug 22, 2025

gRPC reports some I/O errors as is_transport() (because they may
include headers, whereas is_io() does not). We need to retry them.

Over gRPC, Cloud Storage reports some internal as DeadlineExceeded,
need to retry those too.

And finally, timeouts are common enough that need to be retried.

Motivated by #2824

@product-auto-label product-auto-label bot added the api: storage Issues related to the Cloud Storage API. label Aug 22, 2025
@codecov
Copy link

codecov bot commented Aug 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.71%. Comparing base (f9e66fc) to head (cddffc6).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2949   +/-   ##
=======================================
  Coverage   96.71%   96.71%           
=======================================
  Files         105      105           
  Lines        4353     4356    +3     
=======================================
+ Hits         4210     4213    +3     
  Misses        143      143           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

gRPC reports some I/O errors as `is_transport()` (because they may
include headers, whereas `is_io()` does not).  We need to retry them.

Over gRPC, Cloud Storage reports some internal as `DeadlineExceeded`,
need to retry those too.

And finally, timeouts are common enough that need to be retried.
@coryan coryan force-pushed the fix-storage-missing-transient-errors branch from 4040042 to 76a1db9 Compare August 22, 2025 10:34
@coryan coryan marked this pull request as ready for review August 22, 2025 10:58
@coryan coryan requested a review from a team as a code owner August 22, 2025 10:58
dbolduc
dbolduc previously approved these changes Aug 22, 2025
}
if error.is_transport() && error.http_status_code().is_none() {
// Sometimes gRPC returns a transport error without an HTTP status
// code. We treat all of these are I/O errors and therefore
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/these are/these as/

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@coryan coryan enabled auto-merge (squash) August 22, 2025 16:01
@coryan coryan merged commit 3206093 into googleapis:main Aug 22, 2025
22 checks passed
@coryan coryan deleted the fix-storage-missing-transient-errors branch August 22, 2025 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: storage Issues related to the Cloud Storage API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants