United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6822263 G1: JVMTI heap iteration fails
JDK-6822263 : G1: JVMTI heap iteration fails

Details
Type:
Bug
Submit Date:
2009-03-25
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs15 (b05)

Related Reports
Backport:
Backport:

Sub Tasks

Description
JVM fails guarantee with a G1 collector after going through a JVMTI heap iteration with a subsequent full GC:

#  Internal Error (/tmp/jprt/P1/B/025853.ap31282/source/src/share/vm/classfile/dictionary.cpp:262), pid=3474, tid=9
#  Error: guarantee(!is_alive->do_object_b(k_def_class_loader),"defining loader should not be live if klass is not")

                                    

Comments
EVALUATION

JVMTI reachable objects iteration functions use a call to object_iterate() to clean the marking bits of the objects (it uses marking bits to track the vertices of the object graph that it visits). The semantics of the object_iterate() include iteration over the perm gen. However G1 doesn't do that. The fix is to include the perm gen objects in the iterable set.
                                     
2009-03-25
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4ac7d97e6101
                                     
2009-03-26



Hardware and Software, Engineered to Work Together