fix(bigquery): retry getTable server errors#13383
Conversation
Translate HTTP response exceptions thrown by getTable before retry evaluation so existing BigQueryException retryability handles transient server errors. Keep the change scoped to getTable and leave raw network IOExceptions on the existing retry path. Fixes googleapis#12885
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Code Review
This pull request wraps the call to getTableSkipExceptionTranslation in BigQueryImpl with a try-catch block to catch HttpResponseException and rethrow it as a BigQueryException. It also adds a corresponding unit test testGetTableFailureShouldRetryServerErrors to verify that 503 server errors are successfully retried. There are no review comments, so I have no feedback to provide.
Translate HTTP response exceptions thrown by BigQuery.getTable before retry evaluation so the existing BigQueryException retryability rules can retry transient server errors such as HTTP 503.
This keeps the change scoped to getTable. It does not change job retry behavior or raw network IOException handling.
Fixes #12885
Tests:
mvn -pl java-bigquery/google-cloud-bigquery -Dtest=BigQueryImplTest#testGetTableFailureShouldRetryServerErrors -DskipITs test
mvn -pl java-bigquery/google-cloud-bigquery -Dtest=BigQueryImplTest -DskipITs test
mvn -pl java-bigquery/google-cloud-bigquery -DskipITs test
mvn -pl java-bigquery/google-cloud-bigquery -DskipITs package