Skip to content

Agent Version 3.7.9 Yields java.lang.ClassCircularityError #4817

Description

@rsteppac

Expected behavior

Application starts successfully.

Actual behavior

Application start fails with exception:

ERROR io.opentelemetry.javaagent.OpenTelemetryAgent
java.lang.ClassCircularityError: java/lang/invoke/MethodHandle$1
      at java.base/java.lang.invoke.MethodHandle.customize(MethodHandle.java:1741)
      at java.base/java.lang.invoke.MethodHandle.maybeCustomize(MethodHandle.java:1731)
      at java.base/java.lang.invoke.Invokers.maybeCustomize(Invokers.java:634)
      at java.base/java.lang.invoke.Invokers.checkCustomized(Invokers.java:628)
      at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:134)
      at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:315)
      at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:281)
      at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:271)
      at com.microsoft.applicationinsights.agent.internal.init.FirstEntryPoint.onStartupFailure(FirstEntryPoint.java:248)
      at io.opentelemetry.javaagent.tooling.AgentStarterImpl.start(AgentStarterImpl.java:118)
      at io.opentelemetry.javaagent.bootstrap.AgentInitializer$2.run(AgentInitializer.java:68)
      at io.opentelemetry.javaagent.bootstrap.AgentInitializer$2.run(AgentInitializer.java:61)
      at io.opentelemetry.javaagent.bootstrap.AgentInitializer.execute(AgentInitializer.java:84)
      at io.opentelemetry.javaagent.bootstrap.AgentInitializer.initialize(AgentInitializer.java:60)
      at io.opentelemetry.javaagent.OpenTelemetryAgent.startAgent(OpenTelemetryAgent.java:59)
      at io.opentelemetry.javaagent.OpenTelemetryAgent.premain(OpenTelemetryAgent.java:46)
      at com.microsoft.applicationinsights.agent.Agent.premain(Agent.java:38)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:569)
      at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491)
      at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503)
Exception in thread "main" java.lang.ClassCircularityError: java/lang/invoke/MethodHandle$1
      at java.base/java.lang.invoke.MethodHandle.customize(MethodHandle.java:1741)
      at java.base/java.lang.invoke.MethodHandle.maybeCustomize(MethodHandle.java:1731)
      at java.base/java.lang.invoke.Invokers.maybeCustomize(Invokers.java:634)
      at java.base/java.lang.invoke.Invokers.checkCustomized(Invokers.java:628)
      at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:134)
      at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:315)
      at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:281)
      at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:271)
      at java.base/java.util.ResourceBundle$ResourceBundleControlProviderHolder.<clinit>(ResourceBundle.java:1518)
      at java.base/java.util.ResourceBundle.getDefaultControl(ResourceBundle.java:1514)
      at java.base/java.util.ResourceBundle.getDefaultControl(ResourceBundle.java:1508)
      at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:859)
      at org.tanukisoftware.wrapper.resources.ResourceManager.refreshBundle(ResourceManager.java:124)
      at org.tanukisoftware.wrapper.resources.ResourceManager.<init>(ResourceManager.java:117)
      at org.tanukisoftware.wrapper.resources.ResourceManager.getResourceManager(ResourceManager.java:160)
      at org.tanukisoftware.wrapper.resources.ResourceManager.getResourceManager(ResourceManager.java:141)
      at org.tanukisoftware.wrapper.WrapperManager.<clinit>(WrapperManager.java:296)
      at org.apache.karaf.wrapper.internal.service.Main.main(Main.java:143)
JVM exited while loading the application.

To Reproduce

Start Apache Karaf with AppInsights agent version 3.7.9 (-javaagent:/<path_to_agent>/applicationinsights-agent-3.7.9.jar). This agent version yields the above stacktrace. With everything else unchanged, reverting the agent version back to 3.7.5 enables the application to start. I have not tried the in-between versions.

System information

Please provide the following information:

  • SDK Version: Java 17, AppInsights agent 3.7.9
  • OS type and version: Centos 7
  • Application Server type and version (if applicable): Apache Karaf 4.4.7
  • Using spring-boot? No
  • Additional relevant libraries (with version, if applicable): Java Service Wrapper (Tanuki Software)

Logs

Screenshots

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions