RFR 8226304: Obsolete the -XX:+FailOverToOldVerifier option
Harold Seigel
harold.seigel at oracle.com
Wed Jun 19 14:42:50 UTC 2019
Hi Coleen,
I can make those changes before pushing the change.
Thanks, Harold
On 6/19/2019 10:38 AM, coleen.phillimore at oracle.com wrote:
>
>
> On 6/19/19 9:02 AM, Harold Seigel wrote:
>> Hi Coleen,
>>
>> Thanks for looking at this.
>>
>> The logic concerning the split verifier not setting pending exception
>> is not affected by this change. It existed before this change.
>>
>> Do you think this looks better? Should other compound 'if'
>> statements in hotspot be broken up into assignments to bool variables?
>
> This looks better, because then you can associate the interesting
> comment about DumpSharedSpaces with this boolean and not the
> complicated if statement. In answer to your question about other
> compound 'if' statements, my answer is that it depends on how
> surprising the logic is in the clauses, as this is.
>
> I realize the HAS_PENDING_EXCEPTION was pre-existing, even though it's
> unexpected. Can you add a short comment like:
>>
>> bool can_failover = !DumpSharedSpaces &&
>> klass->major_version() < NOFAILOVER_MAJOR_VERSION;
>> if (can_failover && !HAS_PENDING_EXCEPTION && // split
>> verifier doesn't set PENDING_EXCEPTION for failure
>> (exception_name == vmSymbols::java_lang_VerifyError() ||
>> exception_name ==
>> vmSymbols::java_lang_ClassFormatError())) {
>>
>
> I don't need to see another version of this change if you choose to
> make these edits.
>
> Thanks,
> Coleen
>
>> Thanks, Harold
>>
>>
>> On 6/19/2019 8:49 AM, coleen.phillimore at oracle.com wrote:
>>>
>>> http://cr.openjdk.java.net/~hseigel/bug_8226304/webrev/src/hotspot/share/classfile/verifier.cpp.frames.html
>>>
>>>
>>> 180
>>> 181 // If DumpSharedSpaces is set then don't fall back to the old
>>> verifier on
>>> 182 // verification failure. If a class fails verification with the
>>> split verifier,
>>> 183 // it might fail the CDS runtime verifier constraint check. In
>>> that case, we
>>> 184 // don't want to share the class. We only archive classes that
>>> pass the split
>>> 185 // verifier.
>>> 186 if (klass->major_version() < NOFAILOVER_MAJOR_VERSION &&
>>> 187 !DumpSharedSpaces && !HAS_PENDING_EXCEPTION &&
>>> 188 (exception_name == vmSymbols::java_lang_VerifyError() ||
>>> 189 exception_name ==
>>> vmSymbols::java_lang_ClassFormatError())) {
>>>
>>>
>>> This logic is torturous. Does the split verifier not set
>>> pending_exception, but sets the exception_name ? Weird.
>>>
>>> I kind of prefer the can_failover boolean better, adding
>>> !DumpSharedSpaces to that.
>>>
>>> Coleen
>>>
>>> On 6/18/19 3:06 PM, Harold Seigel wrote:
>>>> Hi,
>>>>
>>>> Please review this JDK-14 fix to obsolete the
>>>> -XX+FailOverToOldVerifier option.
>>>>
>>>> Open Webrev:
>>>> http://cr.openjdk.java.net/~hseigel/bug_8226304/webrev/index.html
>>>>
>>>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8226304
>>>>
>>>> The fix was tested by running with option FailOverToOldVerifier and
>>>> checking the output:
>>>>
>>>> > java -XX:+FailOverToOldVerifier -version
>>>> Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option
>>>> FailOverToOldVerifier; support was removed in 14.0
>>>> java version "14-internal" 2020-03-17
>>>> ...
>>>>
>>>> It was regression tested by running Mach5 tiers 1 and 2 tests and
>>>> builds on Linux-x64, Solaris, Windows, and Mac OS X, by running
>>>> Mach5 tiers 3-5 tests on Linux-x64, and JCK lang and VM tests on
>>>> Linux-x64.
>>>>
>>>> Thanks, Harold
>>>>
>>>
>
More information about the hotspot-runtime-dev
mailing list