Error, Java 8, lambda form compilation

Charles Oliver Nutter headius at headius.com
Wed Feb 28 18:40:42 UTC 2018


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<LL>,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<LL>,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]              <init> at java/lang/invoke/MethodHandle.java:461
     [exec]              <init> at java/lang/invoke/BoundMethodHandle.java:58
     [exec]              <init> 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 <headius at headius.com>
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<L>,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]               <init> at java/lang/invoke/MethodHandle.java:461
>      [exec]               <init> at java/lang/invoke/BoundMethodHandle.java:58
>      [exec]               <init> 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.ivanov at 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<L>,a1:L,a2:L)=>{
>> >       [exec]     t3:L=Species_L.argL0(a0:L);t3:L}
>> >       [exec] java.lang.InternalError:
>> identity_L=Lambda(a0:L/SpeciesData<L>,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]              <init> at
>> java/lang/invoke/MethodHandle.java:461
>> >       [exec]              <init> at
>> java/lang/invoke/BoundMethodHandle.java:58
>> >       [exec]              <init> 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 at openjdk.java.net
>> > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> >
>>
> --

- Charlie (mobile)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20180228/454a55b5/attachment.html>


More information about the mlvm-dev mailing list