RFR: 8186502: Assert when range testing G1RefProcDrainInterval on 64-bit systems

Stefan Johansson stefan.johansson at oracle.com
Mon Nov 6 10:21:54 UTC 2017


Thanks for fixing this Leo,

Change looks good and I can do the push for you,
StefanJ

On 2017-11-06 10:55, Leo Korinth wrote:
> 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