S RFR: Lambda: verification error in generated lambda classes
Karen Kinnear
Karen.Kinnear at oracle.com
Wed Aug 28 17:50:36 PDT 2013
Thank you David. I agree, I was tempted to rewrite the entire method - in particular, in a debugger
(so I didn't check the optimized code) we walk the entire && before we make the initial call - in this
case the initial call would weed out more things faster potentially, so ... But I chose not to rewrite since
they need this quickly and the shaking out would take quite a bit longer.
thanks for the review,
Karen
On Aug 28, 2013, at 8:48 PM, David Holmes wrote:
> Hi Karen,
>
> I found the boolean logic very hard to follow there - not sure if the refactoring helped or hindered :)
>
> But it looks okay.
>
> David
>
> On 29/08/2013 5:42 AM, Karen Kinnear wrote:
>> Please review - lambda team needs this change to get in by tomorrow so
>> they can push
>> the (8010433) metafactory change which is waiting on the vm. Thanks.
>>
>>
>> webrev: http://cr.openjdk.java.net/~acorn/8023872/webrev/
>> http://bugs.sun.com/view_bug.do?bug_id=8023872
>>
>> Testing:
>> The failure comes if you apply an early patch of 8010433 to the jdk and
>> do not
>> make the vm change. So testing included 4 binaries: master, newjdk,
>> newvm, newjdkvm
>>
>> jtreg for SpinedBufferTest with various flags - these are the expected
>> results below
>> The key point is newjdk -Xverify: all fails
>> newjdkvm -Xverify:all passes, but if you also turn on
>> -XX:+VerifyLambdaBytecodes you see
>> the verification error
>>
>> 1. master
>> no flags: timed out
>> -Xverify:all: timed out
>> -XX:+VerifyReflectionBytecodes: VerifyError in reflection
>>
>> 2. newjdk
>> no flags: timed out
>> -Xverify:all
>> java.lang.BootstrapMethodError: call site initialization exception
>> ... cause:
>> VerifyError: Bad invokespecial instruction: current class isn't
>> assignable to reference class
>> -XX:+VerifyReflectionBytecodes: VerifyError in reflection
>>
>> 3. newvm
>> no flags: timed out
>> rerun.sh: -Xverify:all: passed
>> -XX:+VerifyReflectionBytecodes: VerifyError in reflection
>> -XX:+VerifyLambdaBytecodes: passed, didn't try verification
>> rerun.sh: -Xverify:all -XX:+VerifyLambdaBytecodes: passed
>>
>> 4. newjdkvm
>> rerun.sh: no flags: passed
>> rerun.verify.sh: -Xverify:all: passed
>> rerun.sh: -Xverify:all -XX:+VerifyLambdaBytecodes:
>> Verification for java.util.streamIntPipeline$7$1$$Lambda$9 failed
>>
>> regression testing:
>> newvm:
>> vm.quick.testlist - in progress
>> jtreg java/util/stream - in progress
>> jprt -stree . - in progress
>>
>> newvmjdk (Brian testing in lambda repo) - in progress
>>
>> thanks,
>> Karen
>>
More information about the hotspot-runtime-dev
mailing list