United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7114303 G1: assert(_g1->mark_in_progress()) failed: shouldn't be here otherwise
7114303 : G1: assert(_g1->mark_in_progress()) failed: shouldn't be here otherwise

Details
Type:
Bug
Submit Date:
2011-11-21
Status:
Closed
Updated Date:
2012-03-22
Project Name:
JDK
Resolved Date:
2012-01-20
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
7u4
Fixed Versions:
hs23

Related Reports
Backport:
Backport:

Sub Tasks

Description
Nightly testing failure on 11/17/2011:

testrun:
http://sqeweb.us.oracle.com/nfs/results/vm/gtee/JDK7/NIGHTLY/VM/2011-11-17/G1_GC_Baseline/

Test Directory:
/net/sqenfs-2.us.oracle.com/export2/results/vm/gtee/JDK7/NIGHTLY/VM/2011-11-17/G1_GC_Baseline/vm/linux-i586/server/mixed/linux-i586_vm_server_mixed_vm.gc.testlist

Test Name:
vm/gc/compact/Compact_NonbranchyTree_ArrayOf

Machine:
vm-x2270-02

rerun.sh script is attached.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/00dd86e542eb
                                     
2012-03-22
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-emb/hotspot/rev/00dd86e542eb
                                     
2011-12-15
SUGGESTED FIX

Add the CM thread to the suspendible thread set before changing the value of the _mark_in_progress flag.
                                     
2011-11-29
EVALUATION

Race between concurrent marking thread (when marking is aborted for a full GC) and the VM thread on the _mark_in_progress flag. When concurrent marking is aborted because of a full GC, the concurrent mark thread set the _mark_in_progress flag to false. The VM thread reads the value of this flag during an evacuation pause to see if it should drain all the SATB buffers. The race comes about because the CM thread set the flag when it is not participating in safepoints (i.e. is not part of the suspendible thread set).

Normally the flag is set as part of the cleanup operation (a safepoint operation instigated by the CM thread) - but the cleanup is skipped when marking is aborted.
                                     
2011-11-29
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/00dd86e542eb
                                     
2011-11-28



Hardware and Software, Engineered to Work Together