United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6538910 CMS: excessively long abortable preclean cycles
6538910 : CMS: excessively long abortable preclean cycles

Details
Type:
Bug
Submit Date:
2007-03-26
Status:
Resolved
Updated Date:
2011-03-04
Project Name:
JDK
Resolved Date:
2008-04-07
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
5.0u8,5.0u11
Fixed Versions:
5.0u16

Related Reports
Backport:
Backport:
Backport:
Backport:
Backport:
Relates:
Relates:

Sub Tasks

Description
The overt symptom is apparently long repeated cycles of very short,
low-yield abortable preclean cycles hoing on for a rather long time.
The option CMSMaxAbortablePrecleanTime defaults to a number like
1000 ms or such, so the user ends up being confused as to why
the cycles take so much longer without being cut off at the
default maximum value.

                                    

Comments
EVALUATION

Fixed via 5.0u15-rev-b09
                                     
2008-04-07
EVALUATION

Upon further examination of the code in 5uXX, we realize that though
the workaround may be adequate in some situations, it may not be
in other situations. For such cases, we will need to fix the
use of the timer; see my entry in the comments section
made on 7/19/2007.
                                     
2007-07-19
WORK AROUND

There are situations in which the above workaround will
not be very effective. In such cases, use
-XX:CMSMaxAbortablePrecleanLoops=<small number, like 10>.

But see also 6572569 for possible side-effects of this
in certain heap shapes/configurations.
                                     
2007-07-19
SUGGESTED FIX

See comments section.
                                     
2007-04-03
WORK AROUND

-XX:CMSMaxAbortablePrecleanTime=1 (or 10) or other suitable value, interpreted in
seconds. Note that *this is a temporary workaround*, see comments section.

In particular, *when you upgrade to 5u15* where this bug was
fixed, or to *6.0* or later, please make sure to
*remove* this temporary workaround. In JVM's where this
bug has been fixed, the argument to the CMSMaxAbortablePrecleanTime
is interpreted in *milliiseconds". It's only in JVM's where the
bug is not fixed that it's interpreted as *seconds* and requires
the explicit workaround listed above.
                                     
2007-03-26
EVALUATION

See comments section. Fix understood; workaround available (see workaround section).
                                     
2007-03-26



Hardware and Software, Engineered to Work Together