Propagate context even when no span (#1802)

* Propagate context even when no span

* Don't propagate root context
This commit is contained in:
Trask Stalnaker 2020-11-29 22:26:50 -08:00 committed by GitHub
parent 0c8d7fe73f
commit 573cd0b4e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -5,7 +5,6 @@
package io.opentelemetry.javaagent.instrumentation.api.concurrent; package io.opentelemetry.javaagent.instrumentation.api.concurrent;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.context.Context; import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.context.ContextPropagationDebug; import io.opentelemetry.instrumentation.api.context.ContextPropagationDebug;
import io.opentelemetry.javaagent.instrumentation.api.ContextStore; import io.opentelemetry.javaagent.instrumentation.api.ContextStore;
@ -26,11 +25,12 @@ public class ExecutorInstrumentationUtils {
return false; return false;
} }
Span span = Span.current();
Class<?> taskClass = task.getClass(); Class<?> taskClass = task.getClass();
Class<?> enclosingClass = taskClass.getEnclosingClass(); Class<?> enclosingClass = taskClass.getEnclosingClass();
return span.getSpanContext().isValid() // not much point in propagating root context
// plus it causes failures under otel.internal.failOnContextLeak=true
return Context.current() != Context.root()
// TODO Workaround for // TODO Workaround for
// https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/787 // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/787
&& !taskClass.getName().equals("org.apache.tomcat.util.net.NioEndpoint$SocketProcessor") && !taskClass.getName().equals("org.apache.tomcat.util.net.NioEndpoint$SocketProcessor")