Skip to content
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

fix(bigtable): Do not retry conditional mutate #11437

Conversation

bhshkh
Copy link
Contributor

@bhshkh bhshkh commented Jan 10, 2025

b/387315971

Fixes TestCheckAndMutateRow_NoRetry_TransientError
Before fix:

=== RUN   TestCheckAndMutateRow_NoRetry_TransientError
    checkandmutaterow_test.go:252: 
        	Error Trace:	/usr/local/google/home/bahaaiman/Documents/cfdb-workspace-01/cloud-bigtable-clients-test/tests/checkandmutaterow_test.go:252
        	Error:      	Not equal: 
        	            	expected: 14
        	            	actual  : 0
        	Test:       	TestCheckAndMutateRow_NoRetry_TransientError
    checkandmutaterow_test.go:253: 
        	Error Trace:	/usr/local/google/home/bahaaiman/Documents/cfdb-workspace-01/cloud-bigtable-clients-test/tests/checkandmutaterow_test.go:253
        	Error:      	Not equal: 
        	            	expected: 1
        	            	actual  : 2
        	Test:       	TestCheckAndMutateRow_NoRetry_TransientError
--- FAIL: TestCheckAndMutateRow_NoRetry_TransientError 

After fix:

=== RUN   TestCheckAndMutateRow_NoRetry_TransientError
--- PASS: TestCheckAndMutateRow_NoRetry_TransientError (0.01s)

We don't know if the conditional mutation has been applied so we can't retry them.
Updated the retry to match Java's retry settings:

https://github.com/googleapis/java-bigtable/blob/7df848e39ca045a0579c9e359457aa20741d8983/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java#L810-L811

https://github.com/googleapis/java-bigtable/blob/7df848e39ca045a0579c9e359457aa20741d8983/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java#L458-L461

https://github.com/googleapis/java-bigtable/blob/7df848e39ca045a0579c9e359457aa20741d8983/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java#L296-L297

@bhshkh bhshkh requested review from a team as code owners January 10, 2025 21:46
@product-auto-label product-auto-label bot added the api: bigtable Issues related to the Bigtable API. label Jan 10, 2025
@bhshkh bhshkh requested a review from gkevinzheng January 10, 2025 21:59
@bhshkh bhshkh enabled auto-merge (squash) January 10, 2025 22:03
bigtable/bigtable.go Show resolved Hide resolved
@andre-sampaio
Copy link
Contributor

As a general comment, and not something to be done on this PR (and certainly not blocking): should we consider decoupling this kind of configuration from each method implementation and instead have a central configuration (like we do on the java client)?

@bhshkh
Copy link
Contributor Author

bhshkh commented Jan 15, 2025

As a general comment, and not something to be done on this PR (and certainly not blocking): should we consider decoupling this kind of configuration from each method implementation and instead have a central configuration (like we do on the java client)?

Created b/390193837

@bhshkh bhshkh merged commit ce8c9b1 into googleapis:main Jan 15, 2025
7 of 9 checks passed
@bhshkh bhshkh deleted the fix/cbt-TestCheckAndMutateRow_NoRetry_TransientError branch January 15, 2025 18:53
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.

3 participants