Skip to content

feat(retry): adding support for max-retry-duration for all api other than resumable-upload#13749

Merged
krishnamd-jkp merged 6 commits intogoogleapis:mainfrom
raj-prince:support_max_retry_duration
Feb 5, 2026
Merged

feat(retry): adding support for max-retry-duration for all api other than resumable-upload#13749
krishnamd-jkp merged 6 commits intogoogleapis:mainfrom
raj-prince:support_max_retry_duration

Conversation

@raj-prince
Copy link
Contributor

@raj-prince raj-prince commented Feb 2, 2026

Description:

  • Added support for WithMaxRetryDuration retry option to allow users to configure a maximum duration for retry attempts, similar to the existing WithMaxAttempts option.
  • Option was used internally for write-flow which has default 32 second chunk level max-retry deadline. Configured max-retry-timeout will be used if user set this value.

Testing:

  • Validated unit test - go test -short
  • Validated emulator based test - bash emulator_test.sh

@raj-prince raj-prince requested review from a team February 2, 2026 12:41
@raj-prince raj-prince requested a review from a team as a code owner February 2, 2026 12:41
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @raj-prince, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new WithMaxRetryDuration option, providing users with the ability to define a maximum time limit for retry attempts across all API calls. This feature enhances the existing retry mechanism by allowing a time-based constraint in addition to the attempt-based constraint, ensuring more robust and configurable error handling. The changes include the implementation of this new option, updates to retry configuration structures, and extensive test coverage to validate its behavior and interactions with other retry settings.

Highlights

  • New Retry Option: Introduced WithMaxRetryDuration to allow users to configure a maximum time limit for retry attempts, complementing the existing WithMaxAttempts option.
  • Comprehensive Testing: Added extensive unit and emulator-based tests to validate the behavior of WithMaxRetryDuration, including its interaction with WithMaxAttempts and precedence rules.
  • Configuration Updates: Updated the retryConfig structure and its documentation to reflect the new WithMaxRetryDuration option and how it can be applied.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@raj-prince raj-prince requested a review from BrennaEpp February 2, 2026 12:42
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces support for WithMaxRetryDuration as a retry option, which is a valuable addition for controlling retry behavior. The implementation is clean, following the existing option pattern, and the documentation is clear. The changes are well-tested with unit tests for different levels (client, bucket, object) and a new emulator-based test that validates the end-to-end behavior. I have one suggestion to improve the error checking in one of the new tests, which has been retained as is since it does not conflict with any existing rules.

@raj-prince raj-prince changed the title feat(retry): adding support for max-retry-duration for all api feat(retry): adding support for max-retry-duration for all api other than resumable-upload Feb 3, 2026
@raj-prince raj-prince requested a review from cpriti-os February 4, 2026 03:35
@cpriti-os cpriti-os requested a review from a team as a code owner February 4, 2026 08:42
@krishnamd-jkp krishnamd-jkp merged commit 31c352b into googleapis:main Feb 5, 2026
10 checks passed
krishnamd-jkp added a commit that referenced this pull request Feb 10, 2026
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: v0.8.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:19bb93e8f1f916c61b597db2bad65dc432f79baaabb210499d7d0e4ad1dffe29
<details><summary>storage: 1.60.0</summary>

##
[1.60.0](storage/v1.59.1...storage/v1.60.0)
(2026-02-10)

### Features

* adding support for max-retry-duration for all api other than
resumable-upload (#13749)
([31c352b](31c352bd))

* support checksum validation in resumable json uploads (#13573)
([337ca07](337ca078))

* Added a new field `ComposeObjectRequest.delete_source_objects` field
(PiperOrigin-RevId: 863087065)
([611f239](611f2392))

### Bug Fixes

* change TestValidateChecksumFromServer error message (#13810)
([0741414](07414143))

* fix panic error in transfermanager downloads (#13815)
([4272271](42722719))

* deadlock in event loop while coordinating channels (#13652)
([7d9d00c](7d9d00c6))

### Documentation

* Updated documentation for `BidiReadObject`, `ReadObjectRequest`, and
`ObjectContexts` (PiperOrigin-RevId: 863087065)
([611f239](611f2392))

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants