Skip to content

Agent does not start in OpenJDK 21 | Unable to make protected final java.lang.Class accessible #7694

@shrinidhi111

Description

@shrinidhi111

Describe the bug

Upgraded OpenJDK to the latest version, after an internal exercise. Our project works fine but once it was deployed noticed the telemetry did not start

Steps to reproduce

Use the Java instrumentation on docker image openjdk:21-ea-jdk

What did you expect to see?

Telemetry should start

What did you see instead?

auth.1.afb729mhouxe@e2e-75-115    | [otel.javaagent 2023-01-31 10:37:51:695 +0000] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 1.22.1
auth.1.afb729mhouxe@e2e-75-115    | OpenTelemetry Javaagent failed to start
auth.1.afb729mhouxe@e2e-75-115    | java.lang.ExceptionInInitializerError
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.muzzle.AgentTooling.<clinit>(AgentTooling.java:22)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.AgentInstaller.installBytebuddyAgent(AgentInstaller.java:139)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.AgentInstaller.installBytebuddyAgent(AgentInstaller.java:94)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.AgentStarterImpl.start(AgentStarterImpl.java:78)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.bootstrap.AgentInitializer.initialize(AgentInitializer.java:35)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.OpenTelemetryAgent.startAgent(OpenTelemetryAgent.java:57)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.OpenTelemetryAgent.premain(OpenTelemetryAgent.java:45)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503)
auth.1.afb729mhouxe@e2e-75-115    | Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @7382f612
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:387)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:363)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:311)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:201)
auth.1.afb729mhouxe@e2e-75-115    | 	at java.base/java.lang.reflect.Method.setAccessible(Method.java:195)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.muzzle.AgentCachingPoolStrategy.getFindLoadedClassMethod(AgentCachingPoolStrategy.java:114)
auth.1.afb729mhouxe@e2e-75-115    | 	at io.opentelemetry.javaagent.tooling.muzzle.AgentCachingPoolStrategy.<clinit>(AgentCachingPoolStrategy.java:57)
auth.1.afb729mhouxe@e2e-75-115    | 	... 11 more

What version are you using?

1.22.1

Environment

Docker Image : openjdk:21-ea-jdk

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions