-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
SpannerSampleIT Deadline_Exceeded #2571
Comments
Found in PR #2563 |
@olavloite, would you please be able to take a look? Thanks very much. |
I've seen similar flakes in other test cases as well, and the team developing the CPP client for Spanner is also running into a similar issue. The problem is that the I'll have a look and see if we can try to fix this in the client library by using approximately the following logic:
|
RPCs returning a long-running operation, such as CreateDatabase, CreateBackup and RestoreDatabase, are non-idempotent and cannot be retried automatically by gax. This means that these RPCs sometimes fail with transient errors, such as UNAVAILABLE or DEADLINE_EXCEEDED. This change introduces automatic retries of these RPCs using the following logic: 1. Execute the RPC and wait for the operation to be returned. 2. If a transient error occurs while waiting for the operation, the client library queries the backend for the corresponding operation. If the operation is found, the resumes the tracking of the existing operation and returns that to the user. 3. If no corresponding operation is found in step 2, the client library retries the RPC from step 1. Fixes GoogleCloudPlatform/java-docs-samples#2571
RPCs returning a long-running operation, such as CreateDatabase, CreateBackup and RestoreDatabase, are non-idempotent and cannot be retried automatically by gax. This means that these RPCs sometimes fail with transient errors, such as UNAVAILABLE or DEADLINE_EXCEEDED. This change introduces automatic retries of these RPCs using the following logic: 1. Execute the RPC and wait for the operation to be returned. 2. If a transient error occurs while waiting for the operation, the client library queries the backend for the corresponding operation. If the operation is found, the resumes the tracking of the existing operation and returns that to the user. 3. If no corresponding operation is found in step 2, the client library retries the RPC from step 1. Fixes GoogleCloudPlatform/java-docs-samples#2571
RPCs returning a long-running operation, such as CreateDatabase, CreateBackup and RestoreDatabase, are non-idempotent and cannot be retried automatically by gax. This means that these RPCs sometimes fail with transient errors, such as UNAVAILABLE or DEADLINE_EXCEEDED. This change introduces automatic retries of these RPCs using the following logic: 1. Execute the RPC and wait for the operation to be returned. 2. If a transient error occurs while waiting for the operation, the client library queries the backend for the corresponding operation. If the operation is found, the resumes the tracking of the existing operation and returns that to the user. 3. If no corresponding operation is found in step 2, the client library retries the RPC from step 1. Fixes GoogleCloudPlatform/java-docs-samples#2571
The text was updated successfully, but these errors were encountered: