JDK-6899058 : G1: Internal error in ptrQueue.cpp:201 in nightly tests
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2009-11-06
  • Updated: 2013-09-18
  • Resolved: 2010-02-08
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 Other
6u21Fixed hs17Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
The following nightly test:


is failing on linux_amd64.

The result directory (including hs_err file) can be found at:


The link to the failure (giving machine details etc) can ve found at:


EVALUATION This CR is now considered to have been caused as a result of a regression introduced in 6888898 which affects all collectors, not just G1. See 6896647 where that regression is being fixed.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/fa357420e7d2

SUGGESTED FIX The fix is to remove elements from the completed update buffer queue under control of the same lock using in the code that adds them. This means that we need only one (locking) version of get_completed_buffer.

EVALUATION Race on the dirty card queue completed buffer list between worker thread(s) performing a flush of a deferred store barrier (enqueueing a newly completed buffer) and worker thread(s) in the RSet updating code claiming completed buffers.