opencensus-java icon indicating copy to clipboard operation
opencensus-java copied to clipboard

The agent causes crashes on Java 10

Open benupsavs opened this issue 7 years ago • 3 comments

What version of OpenCensus are you using?

0.15.1

What JVM are you using (java -version)?

java version "10.0.2" 2018-07-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

What did you do?

Start a DropWizard service with the OpenCensus java agent running.

What did you expect to see?

The service starts.

What did you see instead?

The service fails to start because it can't initialize SLF4J.

java.lang.NullPointerException
        at java.base/java.util.Objects.requireNonNull(Objects.java:221)
        at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1451)
        at org.slf4j.LoggerFactory.findPossibleStaticLoggerBinderPathSet(LoggerFactory.java:303)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:146)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
        at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:202)
        at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:293)
        at java.logging/java.util.logging.Logger.log(Logger.java:979)
        at java.logging/java.util.logging.Logger.doLog(Logger.java:1006)
        at java.logging/java.util.logging.Logger.log(Logger.java:1117)
        at io.opencensus.contrib.agent.AgentBuilderListener.onError(AgentBuilderListener.java:58)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Listener$Compound.onError(AgentBuilder.java:1612)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9324)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1300(AgentBuilder.java:9093)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:9775)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:9716)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9273)
        at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$ByteBuddy$ModuleSupport.transform(Unknown Source)
        at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:560)
        at java.base/java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.base/java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1250)
        at java.base/java.lang.System$2.findBootstrapClassOrNull(System.java:2134)
        at java.base/jdk.internal.loader.ClassLoaders$BootClassLoader.loadClassOrNull(ClassLoaders.java:130)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:610)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        at org.slf4j.helpers.SubstituteLoggerFactory.<init>(SubstituteLoggerFactory.java:49)
        at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:86)
        at io.dropwizard.logging.LoggingUtil.getLoggerContext(LoggingUtil.java:41)
        at io.dropwizard.logging.BootstrapLogging.bootstrap(BootstrapLogging.java:52)
        at io.dropwizard.logging.BootstrapLogging.bootstrap(BootstrapLogging.java:41)
        at io.dropwizard.Application.bootstrapLogging(Application.java:38)
        at io.dropwizard.Application.<init>(Application.java:26)

benupsavs avatar Sep 10 '18 22:09 benupsavs

Thanks for reporting this issue and apologies for the delay. I'm going to take a closer look.

ubschmidt2 avatar Apr 17 '19 14:04 ubschmidt2

@ubschmidt2 my initial thought when I reported this was that the version of bytebuddy needed to be upgraded, but I wasn't able to successfully build the agent at the time. Let me know if I can do anything to help.

benupsavs avatar Apr 23 '19 22:04 benupsavs

I tried this with Java 11 using version 0.20.1 and it no longer crashed the service.

benupsavs avatar May 17 '19 07:05 benupsavs