From 28cced965269d33872397f020acdfb3ffc2503ea Mon Sep 17 00:00:00 2001 From: Danny Mccormick Date: Fri, 16 Jan 2026 10:33:21 -0500 Subject: [PATCH] Fix spanner io hang by closing connections --- .../java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java index e060766cbd22..450710112a1b 100644 --- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java +++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java @@ -2101,9 +2101,10 @@ private static Dialect getDialect(SpannerConfig spannerConfig, PipelineOptions p // Allow passing the credential from pipeline options to the getDialect() call. SpannerConfig spannerConfigWithCredential = buildSpannerConfigWithCredential(spannerConfig, pipelineOptions); - DatabaseClient databaseClient = - SpannerAccessor.getOrCreate(spannerConfigWithCredential).getDatabaseClient(); - return databaseClient.getDialect(); + try (SpannerAccessor sa = SpannerAccessor.getOrCreate(spannerConfigWithCredential)) { + DatabaseClient databaseClient = sa.getDatabaseClient(); + return databaseClient.getDialect(); + } } /**