Skip to content
This repository has been archived by the owner on Dec 23, 2023. It is now read-only.

Introduction of contrib-agent causes runtime failure #1962

Open
blt-gw opened this issue Aug 14, 2019 · 1 comment
Open

Introduction of contrib-agent causes runtime failure #1962

blt-gw opened this issue Aug 14, 2019 · 1 comment

Comments

@blt-gw
Copy link

blt-gw commented Aug 14, 2019

Please answer these questions before submitting a bug report.

What version of OpenCensus are you using?

0.23.0

What JVM are you using (java -version)?

java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

What did you do?

If possible, provide a recipe for reproducing the error.

I've introduced the use of contrib-agent, by adding the javagent flags to my program args as suggested in the readme here.

What did you expect to see?

While I have been able to successfully emit trace fragments no traces have been correlated correctly by their trace id. I expected to see normal traffic patterns against my server with properly correlated traces being emitted.

What did you see instead?

I did see properly correlated traces but I also saw a server killing exception in my logs:

Aug 14, 2019 1:47:28 AM io.opencensus.contrib.agent.AgentBuilderListener onError
WARNING: Failed to handle java.util.concurrent.ForkJoinPool
java.lang.IllegalStateException: Cannot assign java.util.concurrent.ForkJoinTask arg0 to interface java.lang.Runnable
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$OffsetMapping$ForArgument.resolve(Advice.java:1418)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$OffsetMapping$ForArgument$Unresolved.resolve(Advice.java:1521)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$ForMethodEnter.doApply(Advice.java:7211)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$ForMethodEnter$WithDiscardedEnterType.doApply(Advice.java:7297)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$ForMethodEnter.apply(Advice.java:7172)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.visitMethod(Advice.java:6887)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1113)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:679)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:391)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.apply(Advice.java:6881)
	at io.opencensus.contrib.agent.deps.bytebuddy.asm.Advice$AdviceVisitor.onAfterExceptionTable(Advice.java:8867)
	at io.opencensus.contrib.agent.deps.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.considerEndOfExceptionTable(ExceptionTableSensitiveMethodVisitor.java:34)
	at io.opencensus.contrib.agent.deps.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitLabel(ExceptionTableSensitiveMethodVisitor.java:47)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.Label.accept(Label.java:357)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:1818)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1275)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:679)
	at io.opencensus.contrib.agent.deps.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:391)
	at io.opencensus.contrib.agent.deps.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3028)
	at io.opencensus.contrib.agent.deps.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1729)
	at io.opencensus.contrib.agent.deps.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:190)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple$Resolution.apply(AgentBuilder.java:9203)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:9614)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9577)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1400(AgentBuilder.java:9345)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:9942)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:9891)
	at java.security.AccessController.doPrivileged(Native Method)
	at io.opencensus.contrib.agent.deps.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9500)
	at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
	at java.util.concurrent.Executors.newWorkStealingPool(Executors.java:125)
	at com.goodwater.ocean.server.trawler.rpc.service.computedmetric.ComputedMetricManagementModule.getExecutorServiceForPlatformMetricManagement(ComputedMetricManagementModule.java:20)
	at com.goodwater.ocean.server.trawler.rpc.service.computedmetric.ComputedMetricManagementModule$$FastClassByGuice$$f4455eb8.invoke(<generated>)
	at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264)
	at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1050)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1086)
	at com.goodwater.ocean.server.trawler.TrawlerServer.prepareExternalAppConfig(TrawlerServer.java:120)
	at com.goodwater.ocean.server.trawler.TrawlerServer.getAppConfigs(TrawlerServer.java:57)
	at com.goodwater.ocean.grpc.server.AbstractGrpcServer.start(AbstractGrpcServer.java:84)
	at com.goodwater.ocean.grpc.server.AbstractGrpcServer.start(AbstractGrpcServer.java:70)
	at com.goodwater.ocean.server.trawler.TrawlerServer.main(TrawlerServer.java:184)

Additional context

I build under bazel. Not sure if that's relevant.

@songy23
Copy link
Contributor

songy23 commented Aug 19, 2019

/cc @ubschmidt2 Could you take a look at this issue?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants