Open
Description
While running the Protobuf test suite in order to reproduce #3860 I sporadically would receive a StackOverflow
error. This occurred while running the test suite with a debug build of the google-protobuf gem's native extension.
Reproduction:
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf/ruby
export PROTOBUF_CONFIG=dbg
bundle
bundle exec rake test
Unfortunately, I'm more likely to see a segfault than I am the StackOverflow
. The backtrace is too long to include in the issue so I've attached the file. Below is an excerpt.
Backtrace
[ruby] WARNING StackOverflowError
[ruby] WARNING StackOverflowError
Uncaught exception:
java.lang.StackOverflowError
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/Native Method)
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/LibFFIContext.java:373)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$CachedSignatureInfo.execute(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:322)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode$SignatureExecuteNode.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:151)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode.cachedSignature(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:80)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNodeGen$Inlined.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNodeGen.java:95)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$Call.callGeneric(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:161)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignatureGen$NFIBackendSignatureLibraryExports$Cached.call(com.oracle.truffle.truffle_nfi_libffi/LibFFISignatureGen.java:239)
at com.oracle.truffle.nfi.backend.spi.NFIBackendSignatureLibraryGen$CachedDispatch.call(com.oracle.truffle.truffle_nfi/NFIBackendSignatureLibraryGen.java:439)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallSignatureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:208)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:460)
at com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode.doOptimizedDirect(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:89)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$CachedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:134)
at com.oracle.truffle.nfi.NFISignature.call(com.oracle.truffle.truffle_nfi/NFISignature.java:103)
at com.oracle.truffle.nfi.NFISignatureGen$SignatureLibraryExports$Cached.call(com.oracle.truffle.truffle_nfi/NFISignatureGen.java:602)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMNativeCallUtils.callNativeFunction(org.graalvm.llvm_community/LLVMNativeCallUtils.java:53)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMNativeDispatchNode.doGenericSingleContext(org.graalvm.llvm_community/LLVMNativeDispatchNode.java:135)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMNativeDispatchNodeGen.executeDispatch(org.graalvm.llvm_community/LLVMNativeDispatchNodeGen.java:99)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMDispatchNode.doNativeFunction(org.graalvm.llvm_community/LLVMDispatchNode.java:406)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMDispatchNodeGen.executeDispatch(org.graalvm.llvm_community/LLVMDispatchNodeGen.java:292)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMCallNode.doCall(org.graalvm.llvm_community/LLVMCallNode.java:86)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMCallNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMCallNodeGen.java:57)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMVoidStatementNodeGen.execute(org.graalvm.llvm_community/LLVMVoidStatementNodeGen.java:30)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNuller.doExecute(org.graalvm.llvm_community/LLVMFrameNuller.java:61)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNullerNodeGen.execute(org.graalvm.llvm_community/LLVMFrameNullerNodeGen.java:28)
at com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode$InitializedBlockNode.execute(org.graalvm.llvm_community/LLVMBasicBlockNode.java:154)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode.dispatchFromBasicBlock(org.graalvm.llvm_community/LLVMDispatchBasicBlockNode.java:117)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode.doDispatch(org.graalvm.llvm_community/LLVMDispatchBasicBlockNode.java:88)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMDispatchBasicBlockNodeGen.java:31)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNode.doRun(org.graalvm.llvm_community/LLVMFunctionRootNode.java:81)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMFunctionRootNodeGen.java:32)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMFunctionStartNode.execute(org.graalvm.llvm_community/LLVMFunctionStartNode.java:102)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode.doCached(org.graalvm.llvm_community/LLVMNativeWrapper.java:118)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapperFactory$CallbackHelperNodeGen.execute(org.graalvm.llvm_community/LLVMNativeWrapperFactory.java:56)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$Execute.doExecute(org.graalvm.llvm_community/LLVMNativeWrapper.java:82)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapperGen$InteropLibraryExports$Cached.execute(org.graalvm.llvm_community/LLVMNativeWrapperGen.java:102)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:262)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallClosureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:582)
at com.oracle.truffle.nfi.NFIClosure$Execute.doOptimizedDirect(com.oracle.truffle.truffle_nfi/NFIClosure.java:95)
at com.oracle.truffle.nfi.NFIClosureGen$InteropLibraryExports$Cached.execute(com.oracle.truffle.truffle_nfi/NFIClosureGen.java:166)
at com.oracle.truffle.nfi.backend.libffi.LibFFIClosure$CallClosureNode.doCall(com.oracle.truffle.truffle_nfi_libffi/LibFFIClosure.java:207)
at com.oracle.truffle.nfi.backend.libffi.LibFFIClosureFactory$CallClosureNodeGen.execute(com.oracle.truffle.truffle_nfi_libffi/LibFFIClosureFactory.java:76)
at com.oracle.truffle.nfi.backend.libffi.LibFFIClosure$VoidRetClosureRootNode.execute(com.oracle.truffle.truffle_nfi_libffi/LibFFIClosure.java:360)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedCallTarget.call(org.graalvm.truffle.runtime/OptimizedCallTarget.java:549)
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/Native Method)
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/LibFFIContext.java:373)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$CachedSignatureInfo.execute(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:322)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode$SignatureExecuteNode.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:151)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode.cachedSignature(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:80)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNodeGen$Inlined.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNodeGen.java:95)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$Call.callLibFFI(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:126)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignatureGen$NFIBackendSignatureLibraryExports$Cached.call(com.oracle.truffle.truffle_nfi_libffi/LibFFISignatureGen.java:230)
at com.oracle.truffle.nfi.backend.spi.NFIBackendSignatureLibraryGen$CachedDispatch.call(com.oracle.truffle.truffle_nfi/NFIBackendSignatureLibraryGen.java:439)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallSignatureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:208)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:460)
at com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode.doOptimizedDirect(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:89)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$CachedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:134)
at com.oracle.truffle.nfi.NFISymbol.execute(com.oracle.truffle.truffle_nfi/NFISymbol.java:86)
at com.oracle.truffle.nfi.NFISymbolGen$InteropLibraryExports$Cached.execute(com.oracle.truffle.truffle_nfi/NFISymbolGen.java:124)
at org.truffleruby.interop.InteropNodes.execute(org.graalvm.ruby/InteropNodes.java:88)
at org.truffleruby.interop.InteropNodes$InteropExecuteNode.interopExecuteWithoutConversion(org.graalvm.ruby/InteropNodes.java:160)
at org.truffleruby.interop.InteropNodesFactory$InteropExecuteNodeFactory$InteropExecuteNodeGen.execute(org.graalvm.ruby/InteropNodesFactory.java:634)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.language.RubyLambdaRootNode.execute(org.graalvm.ruby/RubyLambdaRootNode.java:84)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.yield.CallBlockNode.callBlockCached(org.graalvm.ruby/CallBlockNode.java:86)
at org.truffleruby.language.yield.CallBlockNodeGen$Inlined.executeAndSpecialize(org.graalvm.ruby/CallBlockNodeGen.java:255)
at org.truffleruby.language.yield.CallBlockNodeGen$Inlined.executeCallBlock(org.graalvm.ruby/CallBlockNodeGen.java:221)
at org.truffleruby.core.proc.ProcNodes$CallNode.call(org.graalvm.ruby/ProcNodes.java:149)
at org.truffleruby.core.proc.ProcNodesFactory$CallNodeFactory$CallNodeGen.executeAndSpecialize(org.graalvm.ruby/ProcNodesFactory.java:823)
at org.truffleruby.core.proc.ProcNodesFactory$CallNodeFactory$CallNodeGen.execute(org.graalvm.ruby/ProcNodesFactory.java:814)
at org.truffleruby.language.methods.CallInternalMethodNode.alwaysInlined(org.graalvm.ruby/CallInternalMethodNode.java:102)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.executeAndSpecialize(org.graalvm.ruby/CallInternalMethodNodeGen.java:250)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:141)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.executeAndSpecialize(org.graalvm.ruby/DispatchNodeGen.java:172)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/DispatchNodeGen.java:153)
at org.truffleruby.language.dispatch.RubyCallNode.doCall(org.graalvm.ruby/RubyCallNode.java:186)
at org.truffleruby.language.dispatch.RubyCallNode.execute(org.graalvm.ruby/RubyCallNode.java:138)
at org.truffleruby.language.RubyContextSourceNode.executeVoid(org.graalvm.ruby/RubyContextSourceNode.java:23)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:32)
at org.truffleruby.language.control.UnlessNode.doUnless(org.graalvm.ruby/UnlessNode.java:36)
at org.truffleruby.language.control.UnlessNodeGen.execute(org.graalvm.ruby/UnlessNodeGen.java:80)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.language.RubyMethodRootNode.execute(org.graalvm.ruby/RubyMethodRootNode.java:65)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.executeAndSpecialize(org.graalvm.ruby/CallInternalMethodNodeGen.java:190)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:141)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.executeAndSpecialize(org.graalvm.ruby/DispatchNodeGen.java:172)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/DispatchNodeGen.java:153)
at org.truffleruby.language.dispatch.DispatchNode.call(org.graalvm.ruby/DispatchNode.java:95)
at org.truffleruby.core.MarkingServiceNodes$RunMarkOnExitNode.markSingleObject(org.graalvm.ruby/MarkingServiceNodes.java:93)
at org.truffleruby.core.MarkingServiceNodesFactory$RunMarkOnExitNodeGen$Inlined.executeAndSpecialize(org.graalvm.ruby/MarkingServiceNodesFactory.java:308)
at org.truffleruby.core.MarkingServiceNodesFactory$RunMarkOnExitNodeGen$Inlined.execute(org.graalvm.ruby/MarkingServiceNodesFactory.java:279)
at org.truffleruby.cext.CExtNodes$CallWithCExtLockAndFrameAndUnwrapNode.callWithCExtLockAndFrame(org.graalvm.ruby/CExtNodes.java:269)
at org.truffleruby.cext.CExtNodesFactory$CallWithCExtLockAndFrameAndUnwrapNodeFactory$CallWithCExtLockAndFrameAndUnwrapNodeGen.execute(org.graalvm.ruby/CExtNodesFactory.java:566)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.core.module.ModuleNodes$DefineMethodNode$CallMethodWithLambdaBody.execute(org.graalvm.ruby/ModuleNodes.java:1382)
at org.truffleruby.language.RubyLambdaRootNode.execute(org.graalvm.ruby/RubyLambdaRootNode.java:84)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:102)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/DispatchNodeGen.java:146)
at org.truffleruby.language.dispatch.RubyCallNode.doCall(org.graalvm.ruby/RubyCallNode.java:186)
at org.truffleruby.language.dispatch.RubyCallNode.execute(org.graalvm.ruby/RubyCallNode.java:138)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.language.RubyMethodRootNode.execute(org.graalvm.ruby/RubyMethodRootNode.java:65)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:102)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/DispatchNodeGen.java:146)
at org.truffleruby.language.dispatch.DispatchNode.call(org.graalvm.ruby/DispatchNode.java:135)
at org.truffleruby.language.RubyDynamicObject.invokeMember(org.graalvm.ruby/RubyDynamicObject.java:688)
at org.truffleruby.language.RubyDynamicObjectGen$InteropLibraryExports$Cached.invokeMember(org.graalvm.ruby/RubyDynamicObjectGen.java:2607)
at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(org.graalvm.truffle/InteropLibraryGen.java:8497)
at com.oracle.truffle.llvm.runtime.nodes.intrinsics.interop.LLVMPolyglotInvoke.doInvoke(org.graalvm.llvm_community/LLVMPolyglotInvoke.java:83)
at com.oracle.truffle.llvm.runtime.nodes.intrinsics.interop.LLVMPolyglotInvoke.doIntrinsic(org.graalvm.llvm_community/LLVMPolyglotInvoke.java:95)
at com.oracle.truffle.llvm.runtime.nodes.intrinsics.interop.LLVMPolyglotInvokeNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMPolyglotInvokeNodeGen.java:75)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNullerExpression.doGeneric(org.graalvm.llvm_community/LLVMFrameNullerExpression.java:68)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNullerExpressionNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMFrameNullerExpressionNodeGen.java:28)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMCallNode.doCall(org.graalvm.llvm_community/LLVMCallNode.java:83)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMCallNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMCallNodeGen.java:57)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNullerExpression.doGeneric(org.graalvm.llvm_community/LLVMFrameNullerExpression.java:68)
at com.oracle.truffle.llvm.runtime.nodes.api.LLVMFrameNullerExpressionNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMFrameNullerExpressionNodeGen.java:28)
at com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNodeFactory$LLVMWriteI64NodeGen.execute_generic1(org.graalvm.llvm_community/LLVMWriteNodeFactory.java:554)
at com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNodeFactory$LLVMWriteI64NodeGen.execute(org.graalvm.llvm_community/LLVMWriteNodeFactory.java:528)
at com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode$InitializedBlockNode.execute(org.graalvm.llvm_community/LLVMBasicBlockNode.java:154)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode.dispatchFromBasicBlock(org.graalvm.llvm_community/LLVMDispatchBasicBlockNode.java:117)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode.doDispatch(org.graalvm.llvm_community/LLVMDispatchBasicBlockNode.java:88)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMDispatchBasicBlockNodeGen.java:31)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNode.doRun(org.graalvm.llvm_community/LLVMFunctionRootNode.java:81)
at com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNodeGen.executeGeneric(org.graalvm.llvm_community/LLVMFunctionRootNodeGen.java:32)
at com.oracle.truffle.llvm.runtime.nodes.func.LLVMFunctionStartNode.execute(org.graalvm.llvm_community/LLVMFunctionStartNode.java:102)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode.doCached(org.graalvm.llvm_community/LLVMNativeWrapper.java:118)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapperFactory$CallbackHelperNodeGen.execute(org.graalvm.llvm_community/LLVMNativeWrapperFactory.java:56)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$Execute.doExecute(org.graalvm.llvm_community/LLVMNativeWrapper.java:82)
at com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapperGen$InteropLibraryExports$Cached.execute(org.graalvm.llvm_community/LLVMNativeWrapperGen.java:102)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:262)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallClosureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:582)
at com.oracle.truffle.nfi.NFIClosure$Execute.doOptimizedDirect(com.oracle.truffle.truffle_nfi/NFIClosure.java:95)
at com.oracle.truffle.nfi.NFIClosureGen$InteropLibraryExports$Cached.execute(com.oracle.truffle.truffle_nfi/NFIClosureGen.java:166)
at com.oracle.truffle.nfi.backend.panama.PanamaClosure$CallClosureNode.doCall(com.oracle.truffle.truffle_nfi_panama/PanamaClosure.java:204)
at com.oracle.truffle.nfi.backend.panama.PanamaClosureFactory$CallClosureNodeGen.execute(com.oracle.truffle.truffle_nfi_panama/PanamaClosureFactory.java:70)
at com.oracle.truffle.nfi.backend.panama.PanamaClosure$GenericRetClosureRootNode.execute(com.oracle.truffle.truffle_nfi_panama/PanamaClosure.java:343)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedCallTarget.call(org.graalvm.truffle.runtime/OptimizedCallTarget.java:549)
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/Native Method)
at com.oracle.truffle.nfi.backend.libffi.LibFFIContext.executeNative(com.oracle.truffle.truffle_nfi_libffi/LibFFIContext.java:373)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$CachedSignatureInfo.execute(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:322)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode$SignatureExecuteNode.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:151)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode.cachedSignature(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:80)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNodeGen$Inlined.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNodeGen.java:95)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$Call.callLibFFI(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:126)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignatureGen$NFIBackendSignatureLibraryExports$Cached.call(com.oracle.truffle.truffle_nfi_libffi/LibFFISignatureGen.java:230)
at com.oracle.truffle.nfi.backend.spi.NFIBackendSignatureLibraryGen$CachedDispatch.call(com.oracle.truffle.truffle_nfi/NFIBackendSignatureLibraryGen.java:439)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallSignatureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:208)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:460)
at com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode.doOptimizedDirect(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:89)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$CachedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:134)
at com.oracle.truffle.nfi.NFISymbol.execute(com.oracle.truffle.truffle_nfi/NFISymbol.java:86)
at com.oracle.truffle.nfi.NFISymbolGen$InteropLibraryExports$Cached.execute(com.oracle.truffle.truffle_nfi/NFISymbolGen.java:124)
at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.execute(org.graalvm.truffle/InteropLibraryGen.java:7900)
at org.truffleruby.interop.InteropNodes.execute(org.graalvm.ruby/InteropNodes.java:88)
at org.truffleruby.cext.CExtNodes$CallWithCExtLockAndFrameAndUnwrapNode.callWithCExtLockAndFrame(org.graalvm.ruby/CExtNodes.java:267)
at org.truffleruby.cext.CExtNodesFactory$CallWithCExtLockAndFrameAndUnwrapNodeFactory$CallWithCExtLockAndFrameAndUnwrapNodeGen.execute(org.graalvm.ruby/CExtNodesFactory.java:566)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.core.module.ModuleNodes$DefineMethodNode$CallMethodWithLambdaBody.execute(org.graalvm.ruby/ModuleNodes.java:1382)
at org.truffleruby.language.RubyLambdaRootNode.execute(org.graalvm.ruby/RubyLambdaRootNode.java:84)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:102)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/
<... Cut due to length. See the attached log for the full trac. ...>
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNode.cachedSignature(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNode.java:80)
at com.oracle.truffle.nfi.backend.libffi.FunctionExecuteNodeGen$Inlined.execute(com.oracle.truffle.truffle_nfi_libffi/FunctionExecuteNodeGen.java:95)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignature$Call.callLibFFI(com.oracle.truffle.truffle_nfi_libffi/LibFFISignature.java:126)
at com.oracle.truffle.nfi.backend.libffi.LibFFISignatureGen$NFIBackendSignatureLibraryExports$Cached.call(com.oracle.truffle.truffle_nfi_libffi/LibFFISignatureGen.java:230)
at com.oracle.truffle.nfi.backend.spi.NFIBackendSignatureLibraryGen$CachedDispatch.call(com.oracle.truffle.truffle_nfi/NFIBackendSignatureLibraryGen.java:439)
at com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallSignatureNode.doCall(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:208)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$OptimizedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:460)
at com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode.doOptimizedDirect(com.oracle.truffle.truffle_nfi/CallSignatureNode.java:89)
at com.oracle.truffle.nfi.CallSignatureNodeFactory$CachedCallSignatureNodeGen.execute(com.oracle.truffle.truffle_nfi/CallSignatureNodeFactory.java:134)
at com.oracle.truffle.nfi.NFISymbol.execute(com.oracle.truffle.truffle_nfi/NFISymbol.java:86)
at com.oracle.truffle.nfi.NFISymbolGen$InteropLibraryExports$Cached.execute(com.oracle.truffle.truffle_nfi/NFISymbolGen.java:124)
at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.execute(org.graalvm.truffle/InteropLibraryGen.java:7900)
at org.truffleruby.interop.InteropNodes.execute(org.graalvm.ruby/InteropNodes.java:88)
at org.truffleruby.cext.CExtNodes$CallWithCExtLockAndFrameAndUnwrapNode.callWithCExtLockAndFrame(org.graalvm.ruby/CExtNodes.java:267)
at org.truffleruby.cext.CExtNodesFactory$CallWithCExtLockAndFrameAndUnwrapNodeFactory$CallWithCExtLockAndFrameAndUnwrapNodeGen.execute(org.graalvm.ruby/CExtNodesFactory.java:566)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.core.module.ModuleNodes$DefineMethodNode$CallMethodWithLambdaBody.execute(org.graalvm.ruby/ModuleNodes.java:1382)
at org.truffleruby.language.RubyLambdaRootNode.execute(org.graalvm.ruby/RubyLambdaRootNode.java:84)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
at org.truffleruby.language.methods.CallInternalMethodNodeGen.execute(org.graalvm.ruby/CallInternalMethodNodeGen.java:102)
at org.truffleruby.language.dispatch.DispatchNode.dispatch(org.graalvm.ruby/DispatchNode.java:300)
at org.truffleruby.language.dispatch.DispatchNodeGen.execute(org.graalvm.ruby/DispatchNodeGen.java:146)
at org.truffleruby.language.dispatch.RubyCallNode.doCall(org.graalvm.ruby/RubyCallNode.java:186)
at org.truffleruby.language.dispatch.RubyCallNode.execute(org.graalvm.ruby/RubyCallNode.java:138)
at org.truffleruby.language.control.SequenceNode.execute(org.graalvm.ruby/SequenceNode.java:35)
at org.truffleruby.language.RubyMethodRootNode.execute(org.graalvm.ruby/RubyMethodRootNode.java:65)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(org.graalvm.truffle.runtime/OptimizedCallTarget.java:823)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(org.graalvm.truffle.runtime/OptimizedCallTarget.java:747)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(org.graalvm.truffle.runtime/OptimizedCallTarget.java:671)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(org.graalvm.truffle.runtime/OptimizedCallTarget.java:655)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(org.graalvm.truffle.runtime/OptimizedCallTarget.java:603)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(org.graalvm.truffle.runtime/OptimizedDirectCallNode.java:94)
at org.truffleruby.language.methods.CallInternalMethodNode.callCached(org.graalvm.ruby/CallInternalMethodNode.java:66)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (upcallLinker.cpp:137), pid=47338, tid=2307
# fatal error: Unrecoverable uncaught exception encountered
#
# JRE version: OpenJDK Runtime Environment GraalVM CE 25-dev+22.1 (25.0+22) (build 25+22-jvmci-b01)
# Java VM: OpenJDK 64-Bit Server VM GraalVM CE 25-dev+22.1 (25+22-jvmci-b01, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/nirvdrum/dev/workspaces/protobuf/ruby/hs_err_pid47338.log
[7.561s][warning][os] Loading hsdis library failed
#
# If you would like to submit a bug report, please visit:
# https://github.com/oracle/graal/issues
#
rake aborted!
SignalException: SIGABRT (SignalException)
[stackoverflow.log](https://github.com/user-attachments/files/20403202/stackoverflow.log)
Metadata
Metadata
Assignees
Labels
No labels