RFR: JDK-8151912: guarantee(GCPauseIntervalMillis >= 1) failed: Constraint for GCPauseIntervalMillis should guarantee that value is >= 1

Bengt Rutisson bengt.rutisson at oracle.com
Wed Mar 16 14:07:47 UTC 2016

Hi all,

Could I have a couple of reviews for this change?


The problem is that we do this during setup of G1CollectorPolicy:

     FLAG_SET_DEFAULT(GCPauseIntervalMillis, MaxGCPauseMillis + 1);

If MaxGCPauseMillis is max uint we will overflow and 
GCPauseIntervalMillis will be 0.

Before JDK-8151604 we did not notice this overflow.

The proposed change reduces the max value for MaxGCPauseMillis to 
max_uint - 1. I think it can be argued that we should have a more 
reasonable max value, but I don't have a good suggestion for what that 
value would be. So, for now, to fix the current failures in nightly 
testing, I propose to just reduce it to the largest value that we can 
actually handle.

I am changing the default value too to match this. As a separate change 
it would probably be good to change the default to 200 ms. But since 
ParallelGC uses the same flag in a different way it is not a straight 
forward fix to do.


More information about the hotspot-gc-dev mailing list