Skip to content

Truffle error on raspberry pi 2 (armv7l) since v0.28.0 #1387

@gediminasel

Description

@gediminasel

system info

$ uname -a
Linux rpi 6.12.47+rpt-rpi-v7 #1 SMP Raspbian 1:6.12.47-1+rpt1 (2025-09-16) armv7l GNU/Linux

$ java --version
openjdk 21.0.8 2025-07-15
OpenJDK Runtime Environment (build 21.0.8+9-Raspbian-1rpi1)
OpenJDK Client VM (build 21.0.8+9-Raspbian-1rpi1, mixed mode, emulated-client, sharing)

last working version

$ ~/downloads/pkl-cli-java-0.27.2.jar --version
Pkl 0.27.2 (Linux 6.12.47+rpt-rpi-v7, Java 21.0.8)

$ ~/downloads/pkl-cli-java-0.27.2.jar eval a.pkl
a = 5

first broken version

$ ~/downloads/pkl-cli-java-0.28.0.jar --version
Pkl 0.28.0 (Linux 6.12.47+rpt-rpi-v7, Java 21.0.8)

$ ~/downloads/pkl-cli-java-0.28.0.jar eval a.pkl
Exception in thread "main" java.lang.InternalError: java.lang.reflect.InvocationTargetException
	at com.oracle.truffle.runtime.ModulesSupport.loadModulesSupportLibrary(ModulesSupport.java:170)
	at com.oracle.truffle.runtime.ModulesSupport.<clinit>(ModulesSupport.java:59)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.createRuntime(HotSpotTruffleRuntimeAccess.java:84)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.getRuntime(HotSpotTruffleRuntimeAccess.java:75)
	at com.oracle.truffle.api.Truffle.createRuntime(Truffle.java:145)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:176)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:174)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:174)
	at com.oracle.truffle.api.Truffle.<clinit>(Truffle.java:63)
	at org.pkl.core.Platform.<clinit>(Platform.java:48)
	at org.pkl.core.util.IoUtils.isWindows(IoUtils.java:214)
	at org.pkl.core.util.IoUtils.isWindowsAbsolutePath(IoUtils.java:77)
	at org.pkl.commons.cli.commands.BaseOptions$Companion.parseModuleName(BaseOptions.kt:55)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:541)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:532)
	at com.github.ajalt.clikt.parameters.arguments.ProcessedArgumentImpl.finalize(Argument.kt:205)
	at com.github.ajalt.clikt.internal.FinalizationKt.iterateFinalization(Finalization.kt:90)
	at com.github.ajalt.clikt.internal.FinalizationKt.finalizeParameters(Finalization.kt:63)
	at com.github.ajalt.clikt.parsers.CommandLineParser.finalizeCommand(CommandLineParser.kt:153)
	at com.github.ajalt.clikt.parsers.FlatInvocations$iterator$1.invokeSuspend$lambda$0(Invocation.kt:128)
	at kotlin.sequences.SequencesKt___SequencesKt$onEach$1.invoke(_Sequences.kt:2175)
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
	at kotlin.sequences.SequenceBuilderIterator.next(SequenceBuilder.kt:138)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.parse(CoreCliktCommand.kt:120)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:78)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:90)
	at org.pkl.cli.Main.main$lambda$0(Main.kt:26)
	at org.pkl.commons.cli.CliMainKt.cliMain(CliMain.kt:33)
	at org.pkl.cli.Main.main(Main.kt:26)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:115)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.oracle.truffle.runtime.ModulesSupport.loadModulesSupportLibrary(ModulesSupport.java:163)
	... 29 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.truffle.api.TruffleRuntime.notifyTransferToInterpreter()" because the return value of "com.oracle.truffle.api.Truffle.getRuntime()" is null
	at com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:95)
	at com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere(CompilerDirectives.java:548)
	at com.oracle.truffle.api.InternalResource$CPUArchitecture.getCurrent(InternalResource.java:549)
	at com.oracle.truffle.api.InternalResource$Env.getCPUArchitecture(InternalResource.java:192)
	at com.oracle.truffle.runtime.LibTruffleAttachResource.basePath(LibTruffleAttachResource.java:77)
	at com.oracle.truffle.runtime.LibTruffleAttachResource.versionHash(LibTruffleAttachResource.java:69)
	at com.oracle.truffle.polyglot.InternalResourceCache.installResource(InternalResourceCache.java:222)
	at com.oracle.truffle.polyglot.InternalResourceCache.installRuntimeResource(InternalResourceCache.java:190)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 31 more

latest version (still broken)

$ java -jar ~/downloads/pkl-cli-0.30.2-all.jar eval a.pkl
Exception in thread "main" java.lang.InternalError: java.lang.ExceptionInInitializerError
	at com.oracle.truffle.runtime.ModulesSupport.initializeModulesAccessor(ModulesSupport.java:178)
	at com.oracle.truffle.runtime.ModulesSupport.<clinit>(ModulesSupport.java:57)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.createRuntime(HotSpotTruffleRuntimeAccess.java:85)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.getRuntime(HotSpotTruffleRuntimeAccess.java:76)
	at com.oracle.truffle.api.Truffle.createRuntime(Truffle.java:154)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:185)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:183)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:183)
	at com.oracle.truffle.api.Truffle.<clinit>(Truffle.java:64)
	at org.pkl.core.Platform.<clinit>(Platform.java:48)
	at org.pkl.core.util.IoUtils.isWindows(IoUtils.java:214)
	at org.pkl.core.util.IoUtils.isWindowsAbsolutePath(IoUtils.java:77)
	at org.pkl.commons.cli.commands.BaseOptions$Companion.parseModuleName(BaseOptions.kt:57)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:541)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:532)
	at com.github.ajalt.clikt.parameters.arguments.ProcessedArgumentImpl.finalize(Argument.kt:205)
	at com.github.ajalt.clikt.internal.FinalizationKt.iterateFinalization(Finalization.kt:90)
	at com.github.ajalt.clikt.internal.FinalizationKt.finalizeParameters(Finalization.kt:63)
	at com.github.ajalt.clikt.parsers.CommandLineParser.finalizeCommand(CommandLineParser.kt:153)
	at com.github.ajalt.clikt.parsers.FlatInvocations$iterator$1.invokeSuspend$lambda$0(Invocation.kt:128)
	at kotlin.sequences.SequencesKt___SequencesKt.onEach$lambda$0$SequencesKt___SequencesKt(_Sequences.kt:2287)
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:243)
	at kotlin.sequences.SequenceBuilderIterator.next(SequenceBuilder.kt:138)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.parse(CoreCliktCommand.kt:120)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:78)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:90)
	at org.pkl.cli.Main.main$lambda$0(Main.kt:26)
	at org.pkl.commons.cli.CliMainKt.cliMain(CliMain.kt:33)
	at org.pkl.cli.Main.main(Main.kt:26)
Caused by: java.lang.ExceptionInInitializerError
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(MethodHandleAccessorFactory.java:71)
	at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:159)
	at java.base/java.lang.reflect.Method.acquireMethodAccessor(Method.java:726)
	at java.base/java.lang.reflect.Method.invoke(Method.java:577)
	at com.oracle.truffle.runtime.ModulesSupport.initializeModulesAccessor(ModulesSupport.java:176)
	... 29 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.truffle.api.TruffleRuntime.notifyTransferToInterpreter()" because the return value of "com.oracle.truffle.api.Truffle.getRuntime()" is null
	at com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:95)
	at com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere(CompilerDirectives.java:548)
	at com.oracle.truffle.api.InternalResource$CPUArchitecture.getCurrent(InternalResource.java:576)
	at com.oracle.truffle.api.InternalResource$Env.getCPUArchitecture(InternalResource.java:195)
	at com.oracle.truffle.polyglot.JDKSupport$LibTruffleAttachResource.basePath(JDKSupport.java:738)
	at com.oracle.truffle.polyglot.JDKSupport$LibTruffleAttachResource.versionHash(JDKSupport.java:733)
	at com.oracle.truffle.polyglot.InternalResourceCache.installResource(InternalResourceCache.java:245)
	at com.oracle.truffle.polyglot.InternalResourceCache.installRuntimeResource(InternalResourceCache.java:213)
	at com.oracle.truffle.polyglot.JDKSupport.initializeModuleAccessor(JDKSupport.java:116)
	at com.oracle.truffle.polyglot.JDKSupport.<clinit>(JDKSupport.java:109)
	... 37 more

latest version, newer java

$ /usr/lib/jvm/java-25-openjdk-armhf/bin/java --version
openjdk 25.0.1 2025-10-21
OpenJDK Runtime Environment (build 25.0.1+8-Raspbian-1deb13u1)
OpenJDK Zero VM (build 25.0.1+8-Raspbian-1deb13u1, interpreted mode, sharing)

$ /usr/lib/jvm/java-25-openjdk-armhf/bin/java -jar ~/downloads/pkl-cli-0.30.2-all.jar eval a.pkl
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/home/pi/downloads/pkl-cli-0.30.2-all.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

Exception in thread "main" java.lang.InternalError: java.lang.ExceptionInInitializerError
	at com.oracle.truffle.runtime.ModulesSupport.initializeModulesAccessor(ModulesSupport.java:178)
	at com.oracle.truffle.runtime.ModulesSupport.<clinit>(ModulesSupport.java:57)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.createRuntime(HotSpotTruffleRuntimeAccess.java:85)
	at com.oracle.truffle.runtime.hotspot.HotSpotTruffleRuntimeAccess.getRuntime(HotSpotTruffleRuntimeAccess.java:76)
	at com.oracle.truffle.api.Truffle.createRuntime(Truffle.java:154)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:185)
	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:183)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:74)
	at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:183)
	at com.oracle.truffle.api.Truffle.<clinit>(Truffle.java:64)
	at org.pkl.core.Platform.<clinit>(Platform.java:48)
	at org.pkl.core.util.IoUtils.isWindows(IoUtils.java:214)
	at org.pkl.core.util.IoUtils.isWindowsAbsolutePath(IoUtils.java:77)
	at org.pkl.commons.cli.commands.BaseOptions$Companion.parseModuleName(BaseOptions.kt:57)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:541)
	at org.pkl.commons.cli.commands.ModulesCommand$special$$inlined$convert$default$1.invoke(Argument.kt:532)
	at com.github.ajalt.clikt.parameters.arguments.ProcessedArgumentImpl.finalize(Argument.kt:205)
	at com.github.ajalt.clikt.internal.FinalizationKt.iterateFinalization(Finalization.kt:90)
	at com.github.ajalt.clikt.internal.FinalizationKt.finalizeParameters(Finalization.kt:63)
	at com.github.ajalt.clikt.parsers.CommandLineParser.finalizeCommand(CommandLineParser.kt:153)
	at com.github.ajalt.clikt.parsers.FlatInvocations$iterator$1.invokeSuspend$lambda$0(Invocation.kt:128)
	at kotlin.sequences.SequencesKt___SequencesKt.onEach$lambda$0$SequencesKt___SequencesKt(_Sequences.kt:2287)
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:243)
	at kotlin.sequences.SequenceBuilderIterator.next(SequenceBuilder.kt:138)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.parse(CoreCliktCommand.kt:120)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:78)
	at com.github.ajalt.clikt.core.CoreCliktCommandKt.main(CoreCliktCommand.kt:90)
	at org.pkl.cli.Main.main$lambda$0(Main.kt:26)
	at org.pkl.commons.cli.CliMainKt.cliMain(CliMain.kt:33)
	at org.pkl.cli.Main.main(Main.kt:26)
Caused by: java.lang.ExceptionInInitializerError
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1169)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:341)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(MethodHandleAccessorFactory.java:72)
	at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:119)
	at java.base/java.lang.reflect.Method.acquireMethodAccessor(Method.java:711)
	at java.base/java.lang.reflect.Method.invoke(Method.java:562)
	at com.oracle.truffle.runtime.ModulesSupport.initializeModulesAccessor(ModulesSupport.java:176)
	... 29 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.truffle.api.TruffleRuntime.notifyTransferToInterpreter()" because the return value of "com.oracle.truffle.api.Truffle.getRuntime()" is null
	at com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate(CompilerDirectives.java:95)
	at com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere(CompilerDirectives.java:548)
	at com.oracle.truffle.api.InternalResource$CPUArchitecture.getCurrent(InternalResource.java:576)
	at com.oracle.truffle.api.InternalResource$Env.getCPUArchitecture(InternalResource.java:195)
	at com.oracle.truffle.polyglot.JDKSupport$LibTruffleAttachResource.basePath(JDKSupport.java:738)
	at com.oracle.truffle.polyglot.JDKSupport$LibTruffleAttachResource.versionHash(JDKSupport.java:733)
	at com.oracle.truffle.polyglot.InternalResourceCache.installResource(InternalResourceCache.java:245)
	at com.oracle.truffle.polyglot.InternalResourceCache.installRuntimeResource(InternalResourceCache.java:213)
	at com.oracle.truffle.polyglot.JDKSupport.initializeModuleAccessor(JDKSupport.java:116)
	at com.oracle.truffle.polyglot.JDKSupport.<clinit>(JDKSupport.java:109)
	... 37 more

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