hg: jdk7/hotspot-gc/hotspot: 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue

tony.printezis at oracle.com tony.printezis at oracle.com
Tue Oct 5 18:33:54 PDT 2010


Changeset: 6e0aac35bfa9
Author:    tonyp
Date:      2010-10-01 16:43 -0400
URL:       http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/6e0aac35bfa9

6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
Summary: Under certain circumstances a safepoint could happen between a JavaThread object being created and that object being added to the Java threads list. This could cause the active field of that thread's SATB queue to get out-of-sync with respect to the other Java threads. The solution is to activate the SATB queue, when necessary, before adding the thread to the Java threads list, not when the JavaThread object is created. The changeset also includes a small fix to rename the surrogate locker thread from "Surrogate Locker Thread (CMS)" to "Surrogate Locker Thread (Concurrent GC)" since it's also used in G1.
Reviewed-by: iveresov, ysr, johnc, jcoomes

! src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp
! src/share/vm/gc_implementation/g1/ptrQueue.hpp
! src/share/vm/gc_implementation/g1/satbQueue.hpp
! src/share/vm/gc_implementation/shared/concurrentGCThread.cpp
! src/share/vm/runtime/thread.cpp
! src/share/vm/runtime/thread.hpp



More information about the hotspot-gc-dev mailing list