JDK-7119584 : UseParallelGC barrier task can be overwritten.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-12-08
  • Updated: 2012-10-10
  • Resolved: 2012-01-20
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 7 JDK 8 Other
7u4Fixed 8Fixed hs23Fixed
The barrier task used by GCTaskManager::execute_and_wait() can still be running when
execute_and_wait() returns. If another GC occurs before the barrier task
finishes, WaitForBarrierGCTask can be overwritten for the new GC and can
cause unpredictable results.

EVALUATION http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6d7d0790074d

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-emb/hotspot/rev/6d7d0790074d

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/6d7d0790074d

EVALUATION There is a window during which a WaitForBarrierGCTask can be executing but the storage for the WaitForBarrierGCTask has been deallocated. Avoid using the task once into that window.