RFR ASAP please: 8026365: Fix verifier for anonymous classes

Daniel D. Daugherty daniel.daugherty at oracle.com
Thu Oct 17 07:06:02 PDT 2013

On 10/17/13 7:26 AM, Karen Kinnear wrote:
> Thank you Dan for the rapid code review, and yes you understood the change.
> Vincente is running additional tests with Robert's upcoming changes.
> Given we did a special push of 8026022 last week to master and it is not yet in tl,
> I think it does make sense to get this into TL directly - if that works for Vincente and Lana.

I don't see any special hoops for 8026022. It looks like it went to
Main_Baseline on 2013-10-10, went to the HSX-25 snapshot on 2013-10-11
and went to JDK8 on 2013-10-15. All appear to normal pushes. I do
remember a different fix a few builds ago requiring a special push,
but it appears that 8026022 was "normal".

I didn't remember to check the current state of jdk8/tl/hotspot.
That repo is currently at tag jdk8-b111/hs25-b53 so it does not
have _any_ of the hs25-b54 code that just went through PIT.

Just to make life interesting, T&L is having some issues with javac
assertions and build problems in corba which prevented yesterday's
regularly scheduled snapshot from being taken. Last e-mail I saw
from Lana said she was holding her JDK8-B113 snapshot until today.
Lana's normal process would sync-down from JDK8 -> T&L after today's
promotion so that will get T&L caught up with jdk8-b112/hs25-b54.

> There will be an extra challenge - when 8026022/8026547 (backport id I think) gets
> to tl and master we will need to make sure that 8026365 overwrites that - i.e. a manual
> merge of hotspot/src/share/vm/classfile/verifier.cpp so we don't go backwards.

My recommendation would be to commit your fix for 8026365 relative to
an hsx-25-b54 repo, wait for T&L to get resync'ed with JDK8 and then
push your fix to T&L/hotspot. Of course, this still presumes that the
folks that need this fix are doing forest builds that include the
hotspot repo...

I can get the special repo setup shortly.


> thank you so much,
> Karen
> On Oct 17, 2013, at 9:09 AM, Daniel D. Daugherty wrote:
>>> webrev: http://cr.openjdk.java.net/~acorn/8026365/webrev/
>> src/share/vm/classfile/verifier.cpp
>>     Just to verify that I understand this tweak:
>>     new lines 2442-2444 - check for anonymous class first before
>>         deciding which ref_class_type.is_assignable_from() form
>>         to use.
>>     old code: made a ref_class_type.is_assignable_from() call and
>>         then checked for anonymous class before doing another
>>         ref_class_type.is_assignable_from() call
>>     The above looks right.
>>     old code: current_type().is_assignable_from() call made, if
>>         that didn't work, then checked hosttype.is_assignable_from()
>>     new code: recognize that current_type() is an anonymous class
>>         and call hosttype.is_assignable_from() straight away
>>     The above also looks right.
>> As for logistics of getting this fix to T&L quickly:
>>     if this fix doesn't depend on other fixes that we just pushed
>>     from RT_Baseline -> Main_Baseline yesterday, then you should
>>     consider pushing this fix to T&L's hotspot repo. Of course, I'm
>>     presuming that the T&L folks are doing builds that include
>>     hotspot rather than relying on the import JDK hotspot.
>>     if this fix does depend on other fixes that we just pushed
>>     from RT_Baseline -> Main_Baseline yesterday, then you need to
>>     hear from Alejandro and/or John C about whether a direct
>>     Main_Baseline push will be permitted.
>> If this fix does not go to T&L directly, then they won't get the
>> fix until after Tuesday of next week. The next HSX-25 snapshot will
>> push to JDK8 on Tuesday if it passes PIT. And then T&L would have
>> to sync-down from JDK8 after that.
>> Dan
>> On 10/16/13 10:17 PM, Karen Kinnear wrote:
>>> On Oct 17, 2013, at 12:13 AM, Karen Kinnear wrote:
>>>> Please review quickly:
>>>> webrev: http://cr.openjdk.java.net/~acorn/8026365/webrev/
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8026365
>>>> Verifier called is_reference_assignable, which called resolve_or_null, which was looking for
>>>> the anonymous class in the system dictionary, where it is not. So this will allow more anonymous
>>>> class cases to get through the verifier while still doing validity checking (but on the host class only,
>>>> not on the anonymous class).
>>>> Tested:
>>>> Robert's new test: reduct (which he will check in as part of the lambda side of this change)
>>>> Lam
>>>> Lam1
>>>> in progress: vm.quick, java.lang, java.util, Nashorn
>>>> thanks,
>>>> Karen
>>>> p.s. Alejandro, Dan, Calvin - they want this in TL ASAP - should I check this directly into hotspot-master tomorrow?
>>>> p.s. Vincente - can you grab this patch to test with Robert's changes please? I tested with the patches he
>>>> had given me

More information about the hotspot-dev mailing list