Internal Error at g1MMUTracker.cpp:92, pid=9261, tid=26
Error: guarantee(ScavengeALot || G1UseFixedWindowMMUTracker,"array full, currently we can't recover unless +G1UseFixedWindowMMUTracker")
can fire if the clock value changes dramatically. In those cases the only thing
that can be done is to over write the oldest values in the tracker queue. Set
G1UseFixedWindowMMUTracker to true so that the behavior is just that.
Clock/gettimeofday problems can cause the MMU tracker queue to fill up and trip a guarantee. The MMU tracker queue is actually cyclic and so setting G1UseFixedMMUTrackerWindow skips the guarantee and causes the earliest entries in the queue to be replacd.
Reviews of just changing the flag value (to skip the guarantee) raised questions about whether the presence of the flag is really necessary.