Skip to content

test(Bigtable): configure per-operation timeout and totalTimeoutMillis for MutateRow in test proxy - #9605

Open
JoeWang1127 wants to merge 1 commit into
googleapis:mainfrom
JoeWang1127:fix/bigtable-retry
Open

test(Bigtable): configure per-operation timeout and totalTimeoutMillis for MutateRow in test proxy#9605
JoeWang1127 wants to merge 1 commit into
googleapis:mainfrom
JoeWang1127:fix/bigtable-retry

Conversation

@JoeWang1127

@JoeWang1127 JoeWang1127 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

In the Bigtable test proxy, MutateRow previously passed timeoutMillis unconditionally without configuring retrySettings.totalTimeoutMillis.

When MutateRow has retries enabled (or when DEADLINE_EXCEEDED is configured as retryable), failing to set totalTimeoutMillis causes GAX to fall back to the default total timeout (60s) and retry upon receiving a deadline timeout. This caused tests like TestMutateRow_Generic_DeadlineExceeded to send unexpected retry attempts, crashing the mock test server.

This change:

  1. Conditionally checks if perOperationTimeout is set to avoid passing null values into RetrySettings, preventing ValidationException.
  2. Sets both timeoutMillis and retrySettings.totalTimeoutMillis so that:
    • On branches where retries are disabled (e.g. main), timeoutMillis ensures the call times out after the requested deadline.
    • On branches where retries are enabled, totalTimeoutMillis ensures GAX bounds the total operation time and stops retrying once the deadline is exceeded.

Fixes googleapis/librarian#7405

@product-auto-label product-auto-label Bot added the api: bigtable Issues related to the Bigtable API. label Aug 28, 2026
@JoeWang1127
JoeWang1127 marked this pull request as ready for review August 28, 2026 16:24
@JoeWang1127
JoeWang1127 requested review from a team as code owners August 28, 2026 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigtable Issues related to the Bigtable API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

php: grpc_service_config is missing from php_gapic_library rules for Bigtable and Bigtable Admin

1 participant