JDK-7028845 : CMS: 6984287 broke parallel reference processing in CMS
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs20,hs21
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-03-18
  • Updated: 2011-05-27
  • Resolved: 2011-05-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u27Fixed 7 b135Fixed hs20.2Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
The changes for 6984287 broke parallel reference porocessing with the CMS collector.

The fix for 6668573 provided a temporary fix for it in hs21 (JDK 7), but hs20 (6u25)
is still broken.

I am filing this CR, just so that someone searching bugster for the problem
is able to find it and as necessary is able to backport the necessary
fixes, or make use of the temporary fixes to provide a cleaner fix
in the future.

For the purposes of tracking and for process reasons, I will create a subCR for hs20 and
close this, the JDK 7/hs21 CR as a duplicate of 6668573 since it contains
a fix for that problem.

To reproduce the problem run with the flags: -XX:+UseConcMarkSweepGC -XX:+ParallelRefProcEnabled.
The JVM will either hang or crash during the first stage of parallel reference processing,
usually when attempting to terminate a parallel work phase.

Comments
EVALUATION The CMSRefProcTaskProxy object needs its terminator object to be initialized to the correct number of threads. Otherwise, you get a hang or crash.
18-03-2011

SUGGESTED FIX See evaluation section, and the fix described in 6984287 and in 6668573.
18-03-2011