Skip to content

Espresso runner w/musl is broken #1575

@sgammon

Description

@sgammon

Issue description

When building our static musl variant, we can't currently use Espresso. This is particularly problematic for elide test, where we don't currently have a JVM fallback like we do for elide run.

Under these circumstances, elide test with a JVM project produces:

╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ Failure while running tests: com.oracle.truffle.espresso.meta.EspressoError: should not reach here: Cannot loa ...         ║
╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ Stacktrace:                                                                                                                ║
║   com.oracle.truffle.espresso.meta.EspressoError: should not reach here: Cannot load library: eden                         ║
║   Search path: [/home/sam/workspace/elide/packages/cli/build/native/nativeOptimizedCompile/resources/java/espres ...       ║
║       at c.o.t.e.f.NativeAccess.loadLibrary(NativeAccess.java:90)                                                          ║
║       at com.oracle.truffle.espresso.ffi.nfi.NFIIsolatedNativeAccess.<init>(NFIIsolatedNativeAccess.java:84)               ║
║       at com.oracle.truffle.espresso.ffi.nfi.NFIIsolatedNativeAccess$Provider.create(NFIIsolatedNativeAccess.java:244)     ║
║       at c.o.t.e.r.EspressoContext.spawnNativeAccess(EspressoContext.java:677)                                             ║
║       at c.o.t.e.r.EspressoContext.spawnVM(EspressoContext.java:380)                                                       ║
║       at c.o.t.e.r.EspressoContext.initializeContext(EspressoContext.java:320)                                             ║
║       at c.o.t.e.EspressoLanguage.initializeContext(EspressoLanguage.java:297)                                             ║
║       at c.o.t.e.EspressoLanguage.initializeContext(EspressoLanguage.java:96)                                              ║
║       at org.graalvm.truffle/com.oracle.truffle.api.TruffleLanguage$Env.postInit(TruffleLanguage.java:3918)                ║
║       at org.graalvm.truffle/com.oracle.truffle.api.LanguageAccessor$LanguageImpl.postInitEnv(LanguageAccessor.java:288)   ║
║       at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized(PolyglotLanguage ...    ║
║       at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextImpl.getBindings(PolyglotContextImpl.java:1615)    ║
║       at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextDispatch.getBindings(PolyglotContextDispatc ...    ║
║       at e.r.c.i.g.GraalVMContext.bindings(GraalVMContext.kt:42)                                                           ║
║       at e.t.j.JvmTestConfigurator.instantiateTestClass(JvmTestConfigurator.kt:77)                                         ║
║       at elide.tooling.jvm.JvmTestConfigurator.matchCandidateMethod$lambda$11(JvmTestConfigurator.kt:118)                  ║
║       at elide.runtime.intrinsics.testing.TestingRegistrar$Companion.deferred$lambda$7(TestingRegistrar.kt:333)            ║
║       at e.t.r.AbstractTestRunner.resolve(AbstractTestRunner.kt:298)                                                       ║
║       at elide.tooling.runner.AbstractTestRunner$tests$6.emit(AbstractTestRunner.kt:169)                                   ║
║       at elide.tooling.runner.AbstractTestRunner$tests$6.emit(AbstractTestRunner.kt:166)                                   ║
║       at elide.tooling.runner.AbstractTestRunner$tests$suspendImpl$$inlined$filter$1$2.emit(Emitters.kt:50)                ║
║       at elide.tooling.runner.AbstractTestRunner$tests$suspendImpl$$inlined$filter$1.collect(SafeCollector.common.kt:109)  ║
║       at elide.tooling.runner.AbstractTestRunner.tests$suspendImpl(AbstractTestRunner.kt:166)                              ║
║       at elide.tooling.runner.AbstractTestRunner.tests(AbstractTestRunner.kt)                                              ║
║       at elide.tooling.runner.TestRunner.tests$default(TestRunner.kt:80)                                                   ║
║       at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThre ...    ║
║       at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThre ...    ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝

Purportedly it is possible to build eden and other libs against musl, and embed them statically, but we'd need to build those libs upstream as they aren't yet available from the GVM team.

Relates to #1439

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingplatform:jvmPRs and issues relating to JVM support.platform:linuxIssues relating to Linux

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions