From 63aa3029d28fef5264994abed9767093d479180a Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Mon, 13 Apr 2026 11:26:20 -0400 Subject: [PATCH 1/3] test(bigquery): Fix flaky ITBigQueryTest#testOpenTelemetryTracingQuery b/467063732 --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 25b90dc942ee..4e014e55c192 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7889,7 +7889,13 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { bigquery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); TableResult tableResult = executeSimpleQuery(bigquery); assertNotNull(tableResult.getQueryId()); - assertNull(tableResult.getJobId()); + + // Safely handle the fallback where BigQuery decides to create a job anyway + if (tableResult.getJobCreationReason() != null) { + assertNotNull(tableResult.getJobId()); + assertEquals(tableResult.getQueryId(), tableResult.getJobId().getJob()); + assertEquals(JobCreationReason.Code.OTHER, tableResult.getJobCreationReason().getCode()); + } assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.queryRpc")); assertNotNull( From 89b729d51e409ecd64cc6fbcefdcedeb5bb4edd3 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Mon, 13 Apr 2026 13:36:46 -0400 Subject: [PATCH 2/3] Apply suggestion from @gemini-code-assist[bot] Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 4e014e55c192..e4d29b59c708 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7895,6 +7895,8 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { assertNotNull(tableResult.getJobId()); assertEquals(tableResult.getQueryId(), tableResult.getJobId().getJob()); assertEquals(JobCreationReason.Code.OTHER, tableResult.getJobCreationReason().getCode()); + } else { + assertNull(tableResult.getJobId()); } assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.queryRpc")); From b662fee5165903e962cba5872b911d65c66a462d Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Tue, 14 Apr 2026 12:38:53 -0400 Subject: [PATCH 3/3] PR feedback --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e4d29b59c708..70569ea15902 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7890,7 +7890,9 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { TableResult tableResult = executeSimpleQuery(bigquery); assertNotNull(tableResult.getQueryId()); - // Safely handle the fallback where BigQuery decides to create a job anyway + // Safely handle the fallback where BigQuery determines a job must be created + // even if the mode is optional. Most requests will be stateless, but it is still + // possible that the BQ engine will create a job even for tiny requests. if (tableResult.getJobCreationReason() != null) { assertNotNull(tableResult.getJobId()); assertEquals(tableResult.getQueryId(), tableResult.getJobId().getJob());