Skip to content

Polyglot Sampler doesn't work with GraalVM for JDK 21 #537

@JaroslavTulach

Description

@JaroslavTulach

Describe the bug

I seem to be unable to use polyglot sampler with GraalVM 23.1 for JDK 21. My application puts Truffle as well as some libraries on --module-path, VisualVM 2.1.6 or 2.1.7 can open the application and shows "Polyglot Sampler" tab. But when switching to it, no button is enabled. I see following exception on console of my application:

[error] Nov 30, 2023 8:55:44 AM org.graalvm.visualvm.sampler.truffle.stagent.TruffleJMX agentmain
[error] SEVERE: null
[error] java.lang.ClassNotFoundException: com.oracle.graalvm.locator.GraalVMLocator
[error]         at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
[error]         at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
[error]         at org.graalvm.visualvm.sampler.truffle.stagent.TruffleClassLoader.getClass(TruffleClassLoader.java:74)
[error]         at org.graalvm.visualvm.sampler.truffle.stagent.TruffleClassLoader.getGraalVMLocatorLoaders(TruffleClassLoader.java:91)
[error]         at org.graalvm.visualvm.sampler.truffle.stagent.TruffleClassLoader.<init>(TruffleClassLoader.java:51)
[error]         at org.graalvm.visualvm.sampler.truffle.stagent.TruffleJMX.getSamplerClassLoader(TruffleJMX.java:143)
[error]         at org.graalvm.visualvm.sampler.truffle.stagent.TruffleJMX.agentmain(TruffleJMX.java:68)
[error]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[error]         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[error]         at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:560)
[error]         at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:582)

I guess that's the cause. Btw. looks like that GraalVMLocator is gone in GraalVM for JDK 21. The class probably no longer exists.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

It'd be nice if polyglot sampling worked again with latest GraalVM.

Desktop (please complete the following information):

  • OS: Linux
  • GraalVM 23.1 for JDK 21
  • Version 2.1.6

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions