From c3f02d595759641debdb47e668a4514750b0ea30 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Fri, 24 Feb 2023 13:45:19 -0800 Subject: [PATCH] gcp-observability: Fix transitive gRPC versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit google-cloud-logging brings in xds, services, and netty-shaded versions 1.43.2. grpc-netty-shaded and xds use internal APIs, so their version needs to align with grpc-api and grpc-core. OpenCensus stackdriver components also brings in netty-shaded version 1.27.2, but it was later in the dependency list so google-cloud-logging's versions won out even if using Maven. We don't need an explicit dependency on netty-shaded because xds depends on it transitively. This was discovered because our GAE interop test failed in the course of PR #9858 which added grpc-gcp-observability to interop-testing (and thus also gae-interop-test): ``` Caused by: java.lang.AbstractMethodError: io.grpc.ManagedChannelProvider.getSupportedSocketAddressTypes()Ljava/util/Collection;     at io.grpc.ManagedChannelRegistry.newChannelBuilder(ManagedChannelRegistry.java:186)     at io.grpc.ManagedChannelRegistry.newChannelBuilder(ManagedChannelRegistry.java:155)     at io.grpc.Grpc.newChannelBuilder(Grpc.java:101)     at io.grpc.testing.integration.LongLivedChannel.(LongLivedChannel.java:44)     ... 44 more ``` --- gcp-observability/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcp-observability/build.gradle b/gcp-observability/build.gradle index f03d6f9620..85e6e9eeb0 100644 --- a/gcp-observability/build.gradle +++ b/gcp-observability/build.gradle @@ -33,11 +33,14 @@ dependencies { libraries.opencensus.contrib.grpc.metrics, libraries.opencensus.exporter.stats.stackdriver, libraries.opencensus.exporter.trace.stackdriver, + project(':grpc-xds'), // Align grpc versions + project(':grpc-services'), // Align grpc versions libraries.animalsniffer.annotations, // Prefer our version libraries.google.auth.credentials, // Prefer our version libraries.protobuf.java.util, // Prefer our version libraries.gson, // Prefer our version libraries.perfmark.api, // Prefer our version + libraries.re2j, // Prefer our version ('com.google.guava:guava:31.1-jre') runtimeOnly libraries.opencensus.impl