Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update: JVM 21, Kotlin 1.9.21 #546

Merged
merged 47 commits into from
Dec 12, 2023
Merged

Update: JVM 21, Kotlin 1.9.21 #546

merged 47 commits into from
Dec 12, 2023

Conversation

sgammon
Copy link
Member

@sgammon sgammon commented Dec 10, 2023

Ready for review Powered by Pull Request Badge

Summary

Includes several dependency upgrades related to JVM 21, and a Micronaut upgrade as well, while we're at it. I've done some spring cleaning, too, which is worth merging separately from these other PRs. I feel the conflicts would be too annoying to reconcile so we should just pick one and close the others.

We can then introduce a 1.0.0-alpha9 branch which targets Kotlin 2.0.0, and cut this as 1.0.0-alpha8 after fixes/cleanup.

High-level changes:

  • Dep updates (see changelog below)
  • Converted Version Catalog to dashes (instead of underscores), should make for easier selection and search
  • Refreshed verification metadata and lockfiles
  • Relock certain module APIs (for example, proto-protobuf's API changes with Protobuf updates)
  • Switch to Micronaut's new catalog plugin, which enables dependency overrides layered on the mn catalog
  • Ruby has finally been fixed upstream, so it is re-enabled with our API upgrade to GVM

Known issues:

  • JS server gives empty response on matched requests (cc/ @darvld)
  • Native image build fails with JIT linkage errors (related to Micrometer)
  • KT-64111: Incompatibility between kotlinx-coroutines RC release and atomicfu. WA available.
  • Issues with static JNI (AbstractStaticNativeLibraryFeature)
  • Release needed for uuid module
  • Certain tests aren't passing on macOS; all have to do with Espresso
    • JavaShellTest: Temporarily disabled
    • KotlinShellTest: Temporarily disabled
    • JvmPluginTest: Temporarily disabled
tldr: Unable to load Nespresso (native Espresso library)
org.graalvm.polyglot.PolyglotException: com.oracle.truffle.espresso.meta.EspressoError: should not reach here: Cannot load library: nespresso
Search path: [/Users/sam/Library/Caches/org.graalvm.polyglot/java/espresso-libs/b58f64b4de4e0c18f2685297dff9346f0d52f0104d5eadf87b45e4f1d2dc7557/lib]
	at org.graalvm.espresso/com.oracle.truffle.espresso.meta.EspressoError.shouldNotReachHere(EspressoError.java:68)
	at org.graalvm.espresso/com.oracle.truffle.espresso.ffi.NativeAccess.loadLibrary(NativeAccess.java:89)
	at org.graalvm.espresso/com.oracle.truffle.espresso.jni.JniEnv.(JniEnv.java:324)
	at org.graalvm.espresso/com.oracle.truffle.espresso.jni.JniEnv.create(JniEnv.java:377)
	at org.graalvm.espresso/com.oracle.truffle.espresso.runtime.EspressoContext.spawnVM(EspressoContext.java:378)
	at org.graalvm.espresso/com.oracle.truffle.espresso.runtime.EspressoContext.initializeContext(EspressoContext.java:319)
	at org.graalvm.espresso/com.oracle.truffle.espresso.EspressoLanguage.initializeContext(EspressoLanguage.java:270)
	at org.graalvm.espresso/com.oracle.truffle.espresso.EspressoLanguage.initializeContext(EspressoLanguage.java:85)
	at org.graalvm.truffle/com.oracle.truffle.api.TruffleLanguage$Env.postInit(TruffleLanguage.java:3772)
	at org.graalvm.truffle/com.oracle.truffle.api.LanguageAccessor$LanguageImpl.postInitEnv(LanguageAccessor.java:288)
	at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized(PolyglotLanguageContext.java:771)
	at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextImpl.getBindings(PolyglotContextImpl.java:1402)
	at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextDispatch.getBindings(PolyglotContextDispatch.java:95)
	at app//org.graalvm.polyglot.impl.UnnamedToModuleContextDispatchGen.getBindings(UnnamedToModuleContextDispatchGen.java:89)
	at app//org.graalvm.polyglot.Context.getBindings(Context.java:563)
	at app//elide.runtime.core.internals.graalvm.GraalVMContext.bindings(GraalVMContext.kt:37)
	at app//elide.runtime.plugins.AbstractLanguageConfig.applyBindings(AbstractLanguageConfig.kt:49)
	at app//elide.runtime.plugins.jvm.JvmConfig.applyTo$graalvm_jvm(JvmConfig.kt:57)
	at app//elide.runtime.plugins.jvm.Jvm.initializeContext(Jvm.kt:43)
	at app//elide.runtime.plugins.jvm.Jvm.access$initializeContext(Jvm.kt:40)
	at app//elide.runtime.plugins.jvm.Jvm$Plugin$install$2.invoke(Jvm.kt:89)
	at app//elide.runtime.plugins.jvm.Jvm$Plugin$install$2.invoke(Jvm.kt:89)
	at app//elide.runtime.core.internals.MutableEngineLifecycle.emit(MutableEngineLifecycle.kt:38)
	at app//elide.runtime.core.internals.graalvm.GraalVMEngine.createContext(GraalVMEngine.kt:107)
	at app//elide.runtime.core.internals.graalvm.GraalVMEngine.acquire(GraalVMEngine.kt:113)
	at app//elide.runtime.plugins.java.JavaShellTest.testEvaluateJava(JavaShellTest.kt:71)
	at [email protected]/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:728)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:218)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:214)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:139)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
	at app//org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at [email protected]/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
tldr; Micrometer missing types
Warning: Parsing context is truncated because its depth exceeds a reasonable limit for reactor.netty.http.server.MicrometerHttpServerMetricsHandler.%%Runtime_Compiled_Method_Key(MicrometerHttpServerMetricsRecorder, Function, Function)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:149)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:184)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureFlowsGraphCreated(MethodTypeFlow.java:153)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.getOrCreateMethodFlowsGraphInfo(MethodTypeFlow.java:111)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultSpecialInvokeTypeFlow.lambda$onObservedUpdate$0(DefaultSpecialInvokeTypeFlow.java:88)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.LightImmutableCollection.forEach(LightImmutableCollection.java:86)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultSpecialInvokeTypeFlow.onObservedUpdate(DefaultSpecialInvokeTypeFlow.java:87)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:620)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:491)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
    at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
    at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

Caused by: com.oracle.svm.core.util.VMError$HostedError: Types reachable for JIT compilation must not have linkage errors
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:78)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.guarantee(VMError.java:122)
at org.graalvm.nativeimage.builder/com.oracle.svm.graal.hosted.GraalGraphObjectReplacer.createType(GraalGraphObjectReplacer.java:330)
at org.graalvm.nativeimage.builder/com.oracle.svm.graal.hosted.GraalGraphObjectReplacer.createSignature(GraalGraphObjectReplacer.java:386)
at org.graalvm.nativeimage.builder/com.oracle.svm.graal.hosted.GraalGraphObjectReplacer.createMethod(GraalGraphObjectReplacer.java:266)
at org.graalvm.nativeimage.builder/com.oracle.svm.graal.hosted.ParseOnceRuntimeCompilationFeature$RuntimeCompilationParsingSupport.validateGraph(ParseOnceRuntimeCompilationFeature.java:919)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.SVMHost.validateGraph(SVMHost.java:888)
at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:231)
at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:621)
at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:167)
... 15 more

Related PRs

Changelog

  • chore: version bump → 1.0.0-alpha8
  • chore: upgrade jvm → 21
  • chore: upgrade gvm → 23.1.1
  • chore: upgrade kotlin → 1.9.21
  • chore: upgrade micronaut → 4.2.1
  • chore: upgrade protobuf → 3.25.1
  • chore: upgrade gRPC → 1.60.0
  • chore: upgrade netty → 4.1.101.Final
  • chore: upgrade gradle → 8.5
  • chore: upgrade buildless → 1.0.0-beta9

- chore: upgrade jvm → `21`
- chore: upgrade kotlin → `1.9.21`
- chore: upgrade micronaut → `4.2.1`
- chore: upgrade gradle → `8.5`

Signed-off-by: Sam Gammon <[email protected]>
@sgammon sgammon added dependencies Pull requests that update a dependency file 🚧 WIP Works-in-progress. Blocks merge labels Dec 10, 2023
@sgammon sgammon added this to the Release R4: Alpha 8 milestone Dec 10, 2023
@sgammon sgammon self-assigned this Dec 10, 2023
@sgammon
Copy link
Member Author

sgammon commented Dec 10, 2023

currently wrestling with KT-44884 just kidding it's actually KT-64111, I've restored kotlinx-coroutines back to 1.7.3 for now.

@sgammon sgammon changed the title Update: JVM 21, Kotlin 1.9.21 Update: JVM 21, Kotlin 1.9.21 Dec 10, 2023
@sgammon sgammon marked this pull request as ready for review December 10, 2023 08:25
@sgammon
Copy link
Member Author

sgammon commented Dec 10, 2023

It looks like there's at least one more known issue, relating to static JNI:

e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:16:28 Unresolved reference: jdk |  
-- | --
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:17:28 Unresolved reference: jdk |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:18:23 Unresolved reference: hosted |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:19:23 Unresolved reference: hosted |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:64:7 Unresolved reference: NativeLibrarySupport |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:66:9 Unresolved reference: PlatformNativeLibrarySupport |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:68:38 Unresolved reference: BeforeAnalysisAccessImpl |  
  | e: file:///.../packages/graalvm/src/main/kotlin/elide/runtime/feature/engine/AbstractStaticNativeLibraryFeature.kt:68:86 Cannot infer a type for this parameter. Please specify it explicitly.

Copy link

socket-security bot commented Dec 10, 2023

New dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
jszip 3.10.1 eval, environment +9 991 kB stuk

@sgammon
Copy link
Member Author

sgammon commented Dec 10, 2023

blocked until uuid goes live on maven central, at which point:

  • buildUuid flips to false
  • buildMingw flips to true

gradle.properties Outdated Show resolved Hide resolved
packages/base/build.gradle.kts Outdated Show resolved Hide resolved
sgammon and others added 10 commits December 10, 2023 03:57
- Default to 404 response even if middleware matches the request.
- Ensure responses are only sent once.
- Catch handler errors and send 500.

Signed-off-by: Dario Valdespino <[email protected]>
@darvld
Copy link
Member

darvld commented Dec 11, 2023

Also note:

org.graalvm.polyglot.PolyglotException: java.lang.NullPointerException: Cannot invoke "com.oracle.truffle.api.TruffleFile.getPath()" because "newHome" is null
        at org.graalvm.ruby/org.truffleruby.RubyLanguage.createContext(RubyLanguage.java:468)
        at org.graalvm.ruby/org.truffleruby.RubyLanguage.createContext(RubyLanguage.java:144)
        at org.graalvm.truffle/com.oracle.truffle.api.LanguageAccessor$LanguageImpl.createEnvContext(LanguageAccessor.java:270)
        at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated(PolyglotLanguageContext.java:652)
        at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized(PolyglotLanguageContext.java:731)
        at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextImpl.getBindings(PolyglotContextImpl.java:1402)
        at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextDispatch.getBindings(PolyglotContextDispatch.java:95)
        at org.graalvm.polyglot.impl.UnnamedToModuleContextDispatchGen.getBindings(UnnamedToModuleContextDispatchGen.java:89)
        at org.graalvm.polyglot.Context.getBindings(Context.java:563)

This seems to be an internal GraalVM error (it says Internal GraalVM error, please report at https://github.com/oracle/graal/issues/. right at the end of the stacktrace), so we should probably report it

@sgammon
Copy link
Member Author

sgammon commented Dec 11, 2023

re-pinning gvm api after we dropped the express classes, then this should be good to go

@sgammon sgammon added dev Dev tools, CI/CD, and other devops topics and removed 🛑 blocked PRs and issues that can't proceed because of code 🚧 WIP Works-in-progress. Blocks merge labels Dec 12, 2023
@sgammon sgammon enabled auto-merge December 12, 2023 05:18
@sgammon sgammon added this pull request to the merge queue Dec 12, 2023
Merged via the queue into main with commit a3a7149 Dec 12, 2023
33 checks passed
@sgammon sgammon deleted the chore/upgrade-jvm21 branch December 12, 2023 06:05
@sgammon sgammon mentioned this pull request Apr 18, 2024
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file dev Dev tools, CI/CD, and other devops topics
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants