Fix tracing-opentelemetry-deps dependency

Description

Suggested release note:

Fix compatibility between couchbase2 and the tracing-opentelemetry module.

Environment

None

Gerrit Reviews

None

Release Notes Description

None

Activity

Show:

Graham Pople January 2, 2024 at 1:49 PM
Edited

Still seeing problems:

Exception in thread "grpc-default-executor-1" java.lang.NoClassDefFoundError: io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesGetter at com.couchbase.client.core.deps.io.opentelemetry.instrumentation.grpc.v1_6.GrpcTelemetry.builder(GrpcTelemetry.java:25) at com.couchbase.client.core.deps.io.opentelemetry.instrumentation.grpc.v1_6.GrpcTelemetry.create(GrpcTelemetry.java:20) at com.couchbase.client.tracing.opentelemetry.OpenTelemetryRequestTracer.registerGrpc(OpenTelemetryRequestTracer.java:170) at com.couchbase.client.core.endpoint.ProtostellarEndpoint.channel(ProtostellarEndpoint.java:237) at com.couchbase.client.core.endpoint.ProtostellarEndpoint.<init>(ProtostellarEndpoint.java:115) at com.couchbase.client.core.endpoint.ProtostellarPool.<init>(ProtostellarPool.java:43) at com.couchbase.client.core.CoreProtostellar.<init>(CoreProtostellar.java:103) at com.couchbase.client.core.api.CoreCouchbaseOps.create(CoreCouchbaseOps.java:86) at com.couchbase.client.java.AsyncCluster.<init>(AsyncCluster.java:233) at com.couchbase.client.java.Cluster.<init>(Cluster.java:292) at com.couchbase.client.java.Cluster.connect(Cluster.java:237) at com.couchbase.utils.ClusterConnection.<init>(ClusterConnection.java:59) at com.couchbase.PerformerService.clusterConnectionCreate(PerformerService.java:205) at com.couchbase.client.protocol.PerformerServiceGrpc$MethodHandlers.invoke(PerformerServiceGrpc.java:2184) at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:355) at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:867) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.ClassNotFoundException: io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcAttributesGetter at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 22 more

This class turns out to be in a different jar than the one I added. The full list of dependencies for io.opentelemetry.instrumentation:opentelemetry-grpc-1.6 is:

io.opentelemetry:opentelemetry-api
io.opentelemetry.instrumentation:opentelemetry-instrumentation-api
io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv

So, we should be able to add a dependency on the latter to get past this issue (as we are intentionally added all dependencies of io.opentelemetry.instrumentation:opentelemetry-grpc-1.6 to tracing-opentelemetry, following discussion here.

Unresolved
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Sprint

Fix versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created December 22, 2023 at 4:25 PM
Updated January 12, 2024 at 10:58 AM
Instabug