RFR: 8186502: Assert when range testing G1RefProcDrainInterval on 64-bit systems
leo.korinth at oracle.com
Mon Nov 6 09:55:57 UTC 2017
On 04/11/17 00:36, sangheon.kim wrote:
> Hi Leo,
> On 11/03/2017 02:24 AM, Leo Korinth wrote:
>> 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).
> 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:
> 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.
>> - JPRT
More information about the hotspot-gc-dev