Re: Error, Java 8, lambda form compilation
On 2/28/18 11:52 PM, Charles Oliver Nutter wrote: Ah-ha...I added some logging, which of course made the error go away...but about ten tests later I got a metaspace OOM. That makes sense. BTW there's another source of exceptions during MethodHandle construction (e.g., JDK-8086252 [1]): java.lang.VirtualMachineError: Out of space in CodeCache for adapters Could be this was all just a memory issue, but it would be nice if the error didn't get swallowed. It's not swallowed, but wrapped in InternalError before rethrowing. Do you have control over test harness to print the whole exception chain? Best regards, Vladimir Ivanov [1] https://bugs.openjdk.java.net/browse/JDK-8086252 On Wed, Feb 28, 2018 at 12:40 PM Charles Oliver Nutter> wrote: Hey, I'm still not sure how best to deal with this, but we've been consistently getting a similar error at the same place. It has kept JRuby master CI red for many weeks. The problem does not reproduce when running in isolation...only in a long test run, and so far only on Travis CI (Ubuntu 16.something, Java 8u151). Looking at the code, it appears the dropArguments call below (called from MethodHandles.guardWithTest:3018) was replaced with some new code and dropArgumentsToMatch in 9. I have not read through logs to see if that change might be related. Unhandled Java exception: java.lang.InternalError: exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); [exec] t4:L=MethodHandle.invokeBasic(t3:L); [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); [exec] t7:V=Invokers.checkCustomized(t4:L); [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} [exec] java.lang.InternalError: exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); [exec] t4:L=MethodHandle.invokeBasic(t3:L); [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); [exec] t7:V=Invokers.checkCustomized(t4:L); [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} [exec]newInternalError at java/lang/invoke/MethodHandleStatics.java:127 [exec] compileToBytecode at java/lang/invoke/LambdaForm.java:660 [exec] prepare at java/lang/invoke/LambdaForm.java:635 [exec] at java/lang/invoke/MethodHandle.java:461 [exec] at java/lang/invoke/BoundMethodHandle.java:58 [exec] at java/lang/invoke/Species_LL:-1 [exec]copyWith at java/lang/invoke/Species_LL:-1 [exec] dropArguments at java/lang/invoke/MethodHandles.java:2465 [exec] guardWithTest at java/lang/invoke/MethodHandles.java:3018 [exec] guardWithTest at java/lang/invoke/SwitchPoint.java:173 [exec] searchConst at org/jruby/ir/targets/ConstantLookupSite.java:103 On Fri, Jan 12, 2018 at 9:54 AM Charles Oliver Nutter > wrote: I wish I could provide more info here. Just got another one in CI: [exec] [1603/8763] TestBenchmark#test_benchmark_makes_extra_calcultations_with_an_Array_at_the_end_of_the_benchmark_and_show_the_resultUnhandled Java exception: java.lang.BootstrapMethodError: call site initialization exception [exec] java.lang.BootstrapMethodError: call site initialization exception [exec] makeSite at java/lang/invoke/CallSite.java:341 [exec] linkCallSiteImpl at java/lang/invoke/MethodHandleNatives.java:307 [exec] linkCallSite at java/lang/invoke/MethodHandleNatives.java:297 [exec] block in autorun at /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 [exec] callDirect at org/jruby/runtime/CompiledIRBlockBody.java:151 [exec] call at org/jruby/runtime/IRBlockBody.java:77 [exec] call at org/jruby/runtime/Block.java:124 [exec] call at org/jruby/RubyProc.java:288 [exec] call at org/jruby/RubyProc.java:272 [exec] tearDown at org/jruby/Ruby.java:3276 [exec] tearDown at org/jruby/Ruby.java:3249 [exec]internalRun at org/jruby/Main.java:309 [exec]run at org/jruby/Main.java:232 [exec] main at org/jruby/Main.java:204 [exec] [exec] Caused by: [exec] java.lang.InternalError:
Re: Error, Java 8, lambda form compilation
Ah-ha...I added some logging, which of course made the error go away...but about ten tests later I got a metaspace OOM. Could be this was all just a memory issue, but it would be nice if the error didn't get swallowed. - Charlie On Wed, Feb 28, 2018 at 12:40 PM Charles Oliver Nutterwrote: > Hey, I'm still not sure how best to deal with this, but we've been > consistently getting a similar error at the same place. It has kept JRuby > master CI red for many weeks. > > The problem does not reproduce when running in isolation...only in a long > test run, and so far only on Travis CI (Ubuntu 16.something, Java 8u151). > > Looking at the code, it appears the dropArguments call below (called from > MethodHandles.guardWithTest:3018) was replaced with some new code and > dropArgumentsToMatch in 9. I have not read through logs to see if that > change might be related. > > Unhandled Java exception: java.lang.InternalError: > exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ > [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); > [exec] t4:L=MethodHandle.invokeBasic(t3:L); > [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); > [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); > [exec] t7:V=Invokers.checkCustomized(t4:L); > [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} > [exec] java.lang.InternalError: > exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ > [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); > [exec] t4:L=MethodHandle.invokeBasic(t3:L); > [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); > [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); > [exec] t7:V=Invokers.checkCustomized(t4:L); > [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} > [exec]newInternalError at > java/lang/invoke/MethodHandleStatics.java:127 > [exec] compileToBytecode at java/lang/invoke/LambdaForm.java:660 > [exec] prepare at java/lang/invoke/LambdaForm.java:635 > [exec] at java/lang/invoke/MethodHandle.java:461 > [exec] at java/lang/invoke/BoundMethodHandle.java:58 > [exec] at java/lang/invoke/Species_LL:-1 > [exec]copyWith at java/lang/invoke/Species_LL:-1 > [exec] dropArguments at java/lang/invoke/MethodHandles.java:2465 > [exec] guardWithTest at java/lang/invoke/MethodHandles.java:3018 > [exec] guardWithTest at java/lang/invoke/SwitchPoint.java:173 > [exec] searchConst at > org/jruby/ir/targets/ConstantLookupSite.java:103 > > > On Fri, Jan 12, 2018 at 9:54 AM Charles Oliver Nutter > wrote: > >> I wish I could provide more info here. Just got another one in CI: >> >> [exec] [1603/8763] >> TestBenchmark#test_benchmark_makes_extra_calcultations_with_an_Array_at_the_end_of_the_benchmark_and_show_the_resultUnhandled >> Java exception: java.lang.BootstrapMethodError: call site initialization >> exception >> [exec] java.lang.BootstrapMethodError: call site initialization >> exception >> [exec] makeSite at java/lang/invoke/CallSite.java:341 >> [exec] linkCallSiteImpl at >> java/lang/invoke/MethodHandleNatives.java:307 >> [exec] linkCallSite at >> java/lang/invoke/MethodHandleNatives.java:297 >> [exec] block in autorun at >> /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 >> [exec] callDirect at >> org/jruby/runtime/CompiledIRBlockBody.java:151 >> [exec] call at org/jruby/runtime/IRBlockBody.java:77 >> [exec] call at org/jruby/runtime/Block.java:124 >> [exec] call at org/jruby/RubyProc.java:288 >> [exec] call at org/jruby/RubyProc.java:272 >> [exec] tearDown at org/jruby/Ruby.java:3276 >> [exec] tearDown at org/jruby/Ruby.java:3249 >> [exec]internalRun at org/jruby/Main.java:309 >> [exec]run at org/jruby/Main.java:232 >> [exec] main at org/jruby/Main.java:204 >> [exec] >> [exec] Caused by: >> [exec] java.lang.InternalError: >> BMH.reinvoke=Lambda(a0:L/SpeciesData,a1:L,a2:L,a3:L)=>{ >> [exec] t4:L=Species_L.argL0(a0:L); >> [exec] t5:L=MethodHandle.invokeBasic(t4:L,a1:L,a2:L,a3:L);t5:L} >> [exec] newInternalError at >> java/lang/invoke/MethodHandleStatics.java:127 >> [exec]compileToBytecode at java/lang/invoke/LambdaForm.java:660 >> [exec] prepare at java/lang/invoke/LambdaForm.java:635 >> [exec]at java/lang/invoke/MethodHandle.java:461 >> [exec]at >> java/lang/invoke/BoundMethodHandle.java:58 >> [exec]at >> java/lang/invoke/BoundMethodHandle.java:211 >> [exec] make at >> java/lang/invoke/BoundMethodHandle.java:224 >>
Re: Error, Java 8, lambda form compilation
Hey, I'm still not sure how best to deal with this, but we've been consistently getting a similar error at the same place. It has kept JRuby master CI red for many weeks. The problem does not reproduce when running in isolation...only in a long test run, and so far only on Travis CI (Ubuntu 16.something, Java 8u151). Looking at the code, it appears the dropArguments call below (called from MethodHandles.guardWithTest:3018) was replaced with some new code and dropArgumentsToMatch in 9. I have not read through logs to see if that change might be related. Unhandled Java exception: java.lang.InternalError: exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); [exec] t4:L=MethodHandle.invokeBasic(t3:L); [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); [exec] t7:V=Invokers.checkCustomized(t4:L); [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} [exec] java.lang.InternalError: exactInvoker=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=BoundMethodHandle$Species_LL.argL1(a0:L); [exec] t4:L=MethodHandle.invokeBasic(t3:L); [exec] t5:L=BoundMethodHandle$Species_LL.argL0(a0:L); [exec] t6:V=Invokers.checkExactType(t4:L,t5:L); [exec] t7:V=Invokers.checkCustomized(t4:L); [exec] t8:I=MethodHandle.invokeBasic(t4:L);t8:I} [exec]newInternalError at java/lang/invoke/MethodHandleStatics.java:127 [exec] compileToBytecode at java/lang/invoke/LambdaForm.java:660 [exec] prepare at java/lang/invoke/LambdaForm.java:635 [exec] at java/lang/invoke/MethodHandle.java:461 [exec] at java/lang/invoke/BoundMethodHandle.java:58 [exec] at java/lang/invoke/Species_LL:-1 [exec]copyWith at java/lang/invoke/Species_LL:-1 [exec] dropArguments at java/lang/invoke/MethodHandles.java:2465 [exec] guardWithTest at java/lang/invoke/MethodHandles.java:3018 [exec] guardWithTest at java/lang/invoke/SwitchPoint.java:173 [exec] searchConst at org/jruby/ir/targets/ConstantLookupSite.java:103 On Fri, Jan 12, 2018 at 9:54 AM Charles Oliver Nutterwrote: > I wish I could provide more info here. Just got another one in CI: > > [exec] [1603/8763] > TestBenchmark#test_benchmark_makes_extra_calcultations_with_an_Array_at_the_end_of_the_benchmark_and_show_the_resultUnhandled > Java exception: java.lang.BootstrapMethodError: call site initialization > exception > [exec] java.lang.BootstrapMethodError: call site initialization exception > [exec] makeSite at java/lang/invoke/CallSite.java:341 > [exec] linkCallSiteImpl at > java/lang/invoke/MethodHandleNatives.java:307 > [exec] linkCallSite at > java/lang/invoke/MethodHandleNatives.java:297 > [exec] block in autorun at > /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 > [exec] callDirect at > org/jruby/runtime/CompiledIRBlockBody.java:151 > [exec] call at org/jruby/runtime/IRBlockBody.java:77 > [exec] call at org/jruby/runtime/Block.java:124 > [exec] call at org/jruby/RubyProc.java:288 > [exec] call at org/jruby/RubyProc.java:272 > [exec] tearDown at org/jruby/Ruby.java:3276 > [exec] tearDown at org/jruby/Ruby.java:3249 > [exec]internalRun at org/jruby/Main.java:309 > [exec]run at org/jruby/Main.java:232 > [exec] main at org/jruby/Main.java:204 > [exec] > [exec] Caused by: > [exec] java.lang.InternalError: > BMH.reinvoke=Lambda(a0:L/SpeciesData,a1:L,a2:L,a3:L)=>{ > [exec] t4:L=Species_L.argL0(a0:L); > [exec] t5:L=MethodHandle.invokeBasic(t4:L,a1:L,a2:L,a3:L);t5:L} > [exec] newInternalError at > java/lang/invoke/MethodHandleStatics.java:127 > [exec]compileToBytecode at java/lang/invoke/LambdaForm.java:660 > [exec] prepare at java/lang/invoke/LambdaForm.java:635 > [exec]at java/lang/invoke/MethodHandle.java:461 > [exec]at java/lang/invoke/BoundMethodHandle.java:58 > [exec]at > java/lang/invoke/BoundMethodHandle.java:211 > [exec] make at > java/lang/invoke/BoundMethodHandle.java:224 > [exec]makeReinvoker at > java/lang/invoke/BoundMethodHandle.java:141 > [exec] rebind at > java/lang/invoke/DirectMethodHandle.java:130 > [exec] insertArguments at java/lang/invoke/MethodHandles.java:2371 > [exec] up at > com/headius/invokebinder/transform/Insert.java:99 > > > On Tue, Jan 9, 2018 at 12:18 PM Vladimir Ivanov < > vladimir.x.iva...@oracle.com> wrote: > >> Thanks, Charlie. >> >>
Re: Error, Java 8, lambda form compilation
I wish I could provide more info here. Just got another one in CI: [exec] [1603/8763] TestBenchmark#test_benchmark_makes_extra_calcultations_with_an_Array_at_the_end_of_the_benchmark_and_show_the_resultUnhandled Java exception: java.lang.BootstrapMethodError: call site initialization exception [exec] java.lang.BootstrapMethodError: call site initialization exception [exec] makeSite at java/lang/invoke/CallSite.java:341 [exec] linkCallSiteImpl at java/lang/invoke/MethodHandleNatives.java:307 [exec] linkCallSite at java/lang/invoke/MethodHandleNatives.java:297 [exec] block in autorun at /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 [exec] callDirect at org/jruby/runtime/CompiledIRBlockBody.java:151 [exec] call at org/jruby/runtime/IRBlockBody.java:77 [exec] call at org/jruby/runtime/Block.java:124 [exec] call at org/jruby/RubyProc.java:288 [exec] call at org/jruby/RubyProc.java:272 [exec] tearDown at org/jruby/Ruby.java:3276 [exec] tearDown at org/jruby/Ruby.java:3249 [exec]internalRun at org/jruby/Main.java:309 [exec]run at org/jruby/Main.java:232 [exec] main at org/jruby/Main.java:204 [exec] [exec] Caused by: [exec] java.lang.InternalError: BMH.reinvoke=Lambda(a0:L/SpeciesData,a1:L,a2:L,a3:L)=>{ [exec] t4:L=Species_L.argL0(a0:L); [exec] t5:L=MethodHandle.invokeBasic(t4:L,a1:L,a2:L,a3:L);t5:L} [exec] newInternalError at java/lang/invoke/MethodHandleStatics.java:127 [exec]compileToBytecode at java/lang/invoke/LambdaForm.java:660 [exec] prepare at java/lang/invoke/LambdaForm.java:635 [exec]at java/lang/invoke/MethodHandle.java:461 [exec]at java/lang/invoke/BoundMethodHandle.java:58 [exec]at java/lang/invoke/BoundMethodHandle.java:211 [exec] make at java/lang/invoke/BoundMethodHandle.java:224 [exec]makeReinvoker at java/lang/invoke/BoundMethodHandle.java:141 [exec] rebind at java/lang/invoke/DirectMethodHandle.java:130 [exec] insertArguments at java/lang/invoke/MethodHandles.java:2371 [exec] up at com/headius/invokebinder/transform/Insert.java:99 On Tue, Jan 9, 2018 at 12:18 PM Vladimir Ivanov < vladimir.x.iva...@oracle.com> wrote: > Thanks, Charlie. > > Unfortunately, it doesn't give much info without the exception which > caused it. > > jdk/src/share/classes/java/lang/invoke/LambdaForm.java: > 659 } catch (Error | Exception ex) { > 660 throw newInternalError(this.toString(), ex); > 661 } > > Best regards, > Vladimir Ivanov > > On 1/9/18 9:10 PM, Charles Oliver Nutter wrote: > > Unfortunately this just happened in one build, but I thought I'd post it > > here for posterity. > > > > Unhandled Java exception: java.lang.InternalError: > identity_L=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ > > [exec] t3:L=Species_L.argL0(a0:L);t3:L} > > [exec] java.lang.InternalError: > identity_L=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ > > [exec] t3:L=Species_L.argL0(a0:L);t3:L} > > [exec]newInternalError at > java/lang/invoke/MethodHandleStatics.java:127 > > [exec] compileToBytecode at java/lang/invoke/LambdaForm.java:660 > > [exec] prepare at java/lang/invoke/LambdaForm.java:635 > > [exec] at > java/lang/invoke/MethodHandle.java:461 > > [exec] at > java/lang/invoke/BoundMethodHandle.java:58 > > [exec] at > java/lang/invoke/BoundMethodHandle.java:211 > > [exec]copyWith at > java/lang/invoke/BoundMethodHandle.java:228 > > [exec] dropArguments at > java/lang/invoke/MethodHandles.java:2465 > > [exec] dropArguments at > java/lang/invoke/MethodHandles.java:2535 > > [exec] up at > com/headius/invokebinder/transform/Drop.java:39 > > [exec] invoke at > com/headius/invokebinder/Binder.java:1143 > > [exec]constant at > com/headius/invokebinder/Binder.java:1116 > > [exec] searchConst at > org/jruby/ir/targets/ConstantLookupSite.java:98 > > [exec]block in autorun at > /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 > > [exec] callDirect at > org/jruby/runtime/CompiledIRBlockBody.java:151 > > [exec]call at org/jruby/runtime/IRBlockBody.java:77 > > [exec]call at org/jruby/runtime/Block.java:124 > > [exec]call at org/jruby/RubyProc.java:288 > > [exec]call at org/jruby/RubyProc.java:272 > > [exec]tearDown at org/jruby/Ruby.java:3276 > > [exec]tearDown at
Re: Error, Java 8, lambda form compilation
Thanks, Charlie. Unfortunately, it doesn't give much info without the exception which caused it. jdk/src/share/classes/java/lang/invoke/LambdaForm.java: 659 } catch (Error | Exception ex) { 660 throw newInternalError(this.toString(), ex); 661 } Best regards, Vladimir Ivanov On 1/9/18 9:10 PM, Charles Oliver Nutter wrote: Unfortunately this just happened in one build, but I thought I'd post it here for posterity. Unhandled Java exception: java.lang.InternalError: identity_L=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=Species_L.argL0(a0:L);t3:L} [exec] java.lang.InternalError: identity_L=Lambda(a0:L/SpeciesData,a1:L,a2:L)=>{ [exec] t3:L=Species_L.argL0(a0:L);t3:L} [exec]newInternalError at java/lang/invoke/MethodHandleStatics.java:127 [exec] compileToBytecode at java/lang/invoke/LambdaForm.java:660 [exec] prepare at java/lang/invoke/LambdaForm.java:635 [exec] at java/lang/invoke/MethodHandle.java:461 [exec] at java/lang/invoke/BoundMethodHandle.java:58 [exec] at java/lang/invoke/BoundMethodHandle.java:211 [exec]copyWith at java/lang/invoke/BoundMethodHandle.java:228 [exec] dropArguments at java/lang/invoke/MethodHandles.java:2465 [exec] dropArguments at java/lang/invoke/MethodHandles.java:2535 [exec] up at com/headius/invokebinder/transform/Drop.java:39 [exec] invoke at com/headius/invokebinder/Binder.java:1143 [exec]constant at com/headius/invokebinder/Binder.java:1116 [exec] searchConst at org/jruby/ir/targets/ConstantLookupSite.java:98 [exec]block in autorun at /home/travis/build/jruby/jruby/test/mri/lib/test/unit.rb:935 [exec] callDirect at org/jruby/runtime/CompiledIRBlockBody.java:151 [exec]call at org/jruby/runtime/IRBlockBody.java:77 [exec]call at org/jruby/runtime/Block.java:124 [exec]call at org/jruby/RubyProc.java:288 [exec]call at org/jruby/RubyProc.java:272 [exec]tearDown at org/jruby/Ruby.java:3276 [exec]tearDown at org/jruby/Ruby.java:3249 [exec] internalRun at org/jruby/Main.java:309 [exec] run at org/jruby/Main.java:232 [exec]main at org/jruby/Main.java:204 - Charlie ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev