United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6843375 Debuggee VM crashes performing mark-sweep-compact
JDK-6843375 : Debuggee VM crashes performing mark-sweep-compact

Details
Type:
Bug
Submit Date:
2009-05-20
Status:
Resolved
Updated Date:
2013-06-26
Project Name:
JDK
Resolved Date:
2013-05-28
Component:
hotspot
OS:
generic
Sub-Component:
jvmti
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6u1
Fixed Versions:
8

Related Reports
Backport:
Backport:
Backport:

Sub Tasks

Description
Debuggee VM intermittently crashes when performing full collection of
ParallelScavengeHeap.

THE ISSUE APPEARS UNDER THE FOLLOWING CONDITIONS:

1. Parallel or ParallelOld CG is used.
2. VM_Thread is executing a Full GC operation. GC performs compaction on
   PermGen (i.e. there are dead objects there).
3. At the same time there is a pending VM_ChangeBreakpoints operation in
   the VM operation queue which is intended to clear a JVMTI breakpoint.

                                    

Comments
SUGGESTED FIX

--- hotspot/src/share/vm/prims/jvmtiImpl.cpp                                    (revision 566)
+++ hotspot/src/share/vm/prims/jvmtiImpl.cpp                                    (working copy)
@@ -392,9 +392,8 @@

 void VM_ChangeBreakpoints::oops_do(OopClosure* f) {
   // This operation keeps breakpoints alive
-  if (_breakpoints != NULL) {
-    _breakpoints->oops_do(f);
-  }
+  // We don't call here _breakpoints->oops_do(),
+  // the list of breakpoints will be processed from JvmtiExport::oops_do()
   if (_bp != NULL) {
     _bp->oops_do(f);
   }
                                     
2009-05-20



Hardware and Software, Engineered to Work Together