RFR: 8186502: Assert when range testing G1RefProcDrainInterval on 64-bit systems
Leo Korinth
leo.korinth at oracle.com
Mon Nov 6 09:55:57 UTC 2017
Hi Sangheon.
On 04/11/17 00:36, sangheon.kim wrote:
> Hi Leo,
>
> On 11/03/2017 02:24 AM, Leo Korinth wrote:
>> Hi,
>>
>> Fix range checking when using -XX:G1RefProcDrainInterval=n
>>
>> On 64 bit machines, when issuing extremly large integer arguments
>> to -XX:G1RefProcDrainInterval=n, a 32 bit integer will overflow and
>> cause a crash.
>>
>> First I have improved the tests by adding the flag
>> -XX:+ExplicitGCInvokesConcurrent when testing the flag
>> -XX:G1RefProcDrainInterval=n to trigger the fault in our
>> test suit.
>>
>> Then I have fixed the fault by limiting the arguments on 64 bit
>> systems (using an int type instead of intx type and a range up to
>> only INT_MAX for argument parsing).
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8186502
>>
>> Webrev:
>> http://cr.openjdk.java.net/~lkorinth/8186502/00/
> Looks good, thank you for fixing for this.
> Just minor nit: you can update copyright year at g1_globals.hpp.
Thanks, copyright year fixed in:
http://cr.openjdk.java.net/~lkorinth/8186502/01/
> BTW, did you run TestOptionsWithRanges.java manually?
> Probably this test is still excluded by default when you run JPRT.
Yes, first I updated the test so that it triggered the bug (and ran the
test manually to verify that it indeed triggered the bug). Then I fixed
the bug. After that I ran the test again (and the test passed).
I am unsure if the test is enabled when you run JPRT though, but if it
is, it will pass.
/Leo
> Thanks,
> Sangheon
>
>
>>
>> Testing:
>> - JPRT
>>
>> Thanks,
>> Leo
>
More information about the hotspot-gc-dev
mailing list