From f0fe9b2041910a05d35a626484cb7472779b0a7b Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Mon, 9 Feb 2026 23:52:20 +0530 Subject: [PATCH 1/3] Upgrade Spanner to the latest version --- .../apache/beam/gradle/BeamModulePlugin.groovy | 5 ----- sdks/java/bom/gcp/build.gradle | 14 ++------------ sdks/java/io/google-cloud-platform/build.gradle | 16 +++------------- 3 files changed, 5 insertions(+), 30 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 774674b545ed..735016cdcc2b 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -613,8 +613,6 @@ class BeamModulePlugin implements Plugin { def google_ads_version = "33.0.0" def google_clients_version = "2.0.0" def google_cloud_bigdataoss_version = "2.2.26" - // [bomupgrader] determined by: com.google.cloud:google-cloud-spanner, consistent with: google_cloud_platform_libraries_bom - def google_cloud_spanner_version = "6.104.0" def google_code_gson_version = "2.10.1" def google_oauth_clients_version = "1.34.1" // [bomupgrader] determined by: io.grpc:grpc-netty, consistent with: google_cloud_platform_libraries_bom @@ -762,10 +760,7 @@ class BeamModulePlugin implements Plugin { // libraries-bom version on sdks/java/container/license_scripts/dep_urls_java.yaml google_cloud_platform_libraries_bom : "com.google.cloud:libraries-bom:26.75.0", google_cloud_secret_manager : "com.google.cloud:google-cloud-secretmanager", // google_cloud_platform_libraries_bom sets version - // TODO(#35868) remove pinned google_cloud_spanner_bom after tests or upstream fixed - google_cloud_spanner_bom : "com.google.cloud:google-cloud-spanner-bom:$google_cloud_spanner_version", google_cloud_spanner : "com.google.cloud:google-cloud-spanner", // google_cloud_platform_libraries_bom sets version - google_cloud_spanner_test : "com.google.cloud:google-cloud-spanner:$google_cloud_spanner_version:tests", google_cloud_tink : "com.google.crypto.tink:tink:1.19.0", google_cloud_vertexai : "com.google.cloud:google-cloud-vertexai", // google_cloud_platform_libraries_bom sets version google_code_gson : "com.google.code.gson:gson:$google_code_gson_version", diff --git a/sdks/java/bom/gcp/build.gradle b/sdks/java/bom/gcp/build.gradle index 5b62243c8454..ccd3b5405eb6 100644 --- a/sdks/java/bom/gcp/build.gradle +++ b/sdks/java/bom/gcp/build.gradle @@ -20,17 +20,7 @@ apply from: '../common.gradle' dependencies { api platform(project(":sdks:java:bom")) - api platform(project.library.java.google_cloud_spanner_bom) - api platform(project.library.java.google_cloud_platform_libraries_bom) { - // TODO(https://github.com/apache/beam/issues/37328) remove exclude and google_cloud_spanner_bom after upstream and/or tests fixed - exclude group: "com.google.cloud", module: "google-cloud-spanner" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-v1" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-instance-v1" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-database-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-instance-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-database-v1" - } + api platform(project.library.java.google_cloud_platform_libraries_bom) constraints { api project.library.java.guava } @@ -42,4 +32,4 @@ publishing { artifactId = 'beam-sdks-java-google-cloud-platform-bom' } } -} \ No newline at end of file +} diff --git a/sdks/java/io/google-cloud-platform/build.gradle b/sdks/java/io/google-cloud-platform/build.gradle index 260740fbcf09..2686297c0001 100644 --- a/sdks/java/io/google-cloud-platform/build.gradle +++ b/sdks/java/io/google-cloud-platform/build.gradle @@ -31,17 +31,7 @@ description = "Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform" ext.summary = "IO library to read and write Google Cloud Platform systems from Beam." dependencies { - implementation(enforcedPlatform(library.java.google_cloud_platform_libraries_bom)) { - // TODO(https://github.com/apache/beam/issues/35868) remove exclude after upstream and/or tests fixed - exclude group: "com.google.cloud", module: "google-cloud-spanner" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-v1" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-instance-v1" - exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-database-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-instance-v1" - exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-database-v1" - } - implementation(enforcedPlatform(library.java.google_cloud_spanner_bom)) + implementation(enforcedPlatform(library.java.google_cloud_platform_libraries_bom)) implementation project(path: ":model:pipeline", configuration: "shadow") implementation project(":runners:core-java") implementation project(path: ":sdks:java:core", configuration: "shadow") @@ -164,7 +154,7 @@ dependencies { testImplementation library.java.mockito_core testRuntimeOnly library.java.mockito_inline testImplementation library.java.joda_time - testImplementation library.java.google_cloud_spanner_test + testImplementation "com.google.cloud:google-cloud-spanner::tests" testImplementation library.java.google_cloud_bigtable_emulator testRuntimeOnly library.java.slf4j_jdk14 // everit_json is needed for Pubsub SchemaTransform that relies on JSON-schema translation. @@ -358,4 +348,4 @@ task postCommit { description = "Integration tests of GCP connectors using the DirectRunner." dependsOn integrationTest dependsOn integrationTestKms -} \ No newline at end of file +} From b9b3a85dcd6004e50155486bd14ce5a3572961e9 Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Tue, 10 Feb 2026 00:45:20 +0530 Subject: [PATCH 2/3] disable gRPC gcp extension --- .../org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java index 96ce735cad4a..cd9018251d70 100644 --- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java +++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java @@ -113,6 +113,11 @@ public static SpannerAccessor getOrCreate(SpannerConfig spannerConfig) { static SpannerOptions buildSpannerOptions(SpannerConfig spannerConfig) { SpannerOptions.Builder builder = SpannerOptions.newBuilder(); + // TODO(https://github.com/apache/beam/issues/37451) Disable gRPC gcp extension which was + // causing the application thread to stall. + // Remove this once Spanner fixes the hanging issue + builder.disableGrpcGcpExtension(); 1 + Set retryableCodes = new HashSet<>(); if (spannerConfig.getRetryableCodes() != null) { retryableCodes.addAll(spannerConfig.getRetryableCodes()); From 02c63a94c0d68f4b9e39417b8377f5db6ef76e12 Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Tue, 10 Feb 2026 01:48:11 +0530 Subject: [PATCH 3/3] Remove extra characters --- .../org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java index cd9018251d70..a3777099bfcb 100644 --- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java +++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java @@ -116,7 +116,7 @@ static SpannerOptions buildSpannerOptions(SpannerConfig spannerConfig) { // TODO(https://github.com/apache/beam/issues/37451) Disable gRPC gcp extension which was // causing the application thread to stall. // Remove this once Spanner fixes the hanging issue - builder.disableGrpcGcpExtension(); 1 + builder.disableGrpcGcpExtension(); Set retryableCodes = new HashSet<>(); if (spannerConfig.getRetryableCodes() != null) {