Currently, the default pause time interval is 500ms. If a user sets a pause time target -XX:MaxGCPauseMillis=P, where P >= 500ms, without setting the interval explicitly with -XX:GCPauseIntervalMillis=T, G1 core dumps as we hit a guarantee that says that the pause time target should be less than the interval: # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (g1CollectorPolicy.cpp:265), pid=7197, tid=2 # Error: guarantee(max_gc_time < time_slice,"Max GC time should not be greater than the time slice") # There are two changes we should make: a) raise a vm error, not a guarantee failure / core dump b) deal quietly with the case where the specified pause time target is >= the default interval
|