United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6694340 G1: deadlock in concurrent marking phase when stack overflow occurs
JDK-6694340 : G1: deadlock in concurrent marking phase when stack overflow occurs

Details
Type:
Bug
Submit Date:
2008-04-25
Status:
Resolved
Updated Date:
2010-04-04
Project Name:
JDK
Resolved Date:
2009-02-13
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs14 (b06)

Related Reports
Backport:
Backport:

Sub Tasks

Description
The concurrent marking threads can be deadlocked if a stack overflow occurs.

                                    

Comments
SUGGESTED FIX

Add some code to reset the sync barriers.
*** (#1 of 1): [ UNSAVED ] ###@###.###
                                     
2008-04-25
EVALUATION

This happens when dealing with the second overflow of the same cycle. To deal with the stack overflow, the workers that are doing the marking have to go through two sync barriers. Unfortunately, said sync barriers are not properly reset after the first overflow, so the workers get stuck during the second one. In fact, it looks as if the workers are stuck there for good. So, subsequently, no more concurrent marking phases take place and G1 only does GC pauses and Full GCs.
                                     
2008-04-25
SUGGESTED FIX

I'll piggy-back on this CR the increase of the global and region stack sizes to decrease the probability of an overflow.
                                     
2008-04-25



Hardware and Software, Engineered to Work Together