JDK-7020042 : G1: Partially remove fix for 6994628
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 6u25
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,linux_redhat_4.0
  • CPU: generic,x86
  • Submitted: 2011-02-16
  • Updated: 2013-09-18
  • Resolved: 2011-04-23
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
6u25Fixed 7Fixed hs20Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
The issue that is causing the failures seen in 7009266 arise as a result of performing reference discovery during concurrent marking, followed by processing any discovered references at the end of concurrent marking. 

By partially removing the fix for 6994628 we can eliminate the disovery of reference objects during concurrent marking - the code that traces objects in concurrent marking will treat reference objects as regular objects and mark through them (marking the referent object and any object that is reachable from it).

By marking the referent objects means that the Logger objects in the KitchenSink bigapp will always be strongly reachable and marked.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8f1042ff784d
04-04-2011

EVALUATION http://hg.openjdk.java.net/hsx/hsx20/baseline/rev/1ec37096cecf
19-02-2011

SUGGESTED FIX Remove code that sets the reference processor field in the CMOopClosure - or place it under an experimental flag that is false by default. This will disable reference discovery and processing during concurrent marking.
18-02-2011

EVALUATION Remove the code that initializes the reference processor in the concurrent marking oop closure. This will cause the reference processor in the closure to be null and effectivelty cause reference objects to be treated as regular objects.
16-02-2011