RFR (XS): 6843375: Debuggee VM crashes performing mark-sweep-compact

Stefan Karlsson stefan.karlsson at oracle.com
Fri May 10 08:07:59 UTC 2013

On 05/08/2013 05:51 PM, Erik Helin wrote:
> Hi all,
> this change fixes a problem when a VM_ChangeBreakpoint operation is 
> enqueued on the VMOperationQueue while at the same time as a GC is 
> running. The GC will process the strong roots and will call both 
> VMOperationQueue::oops_do (via Threads::oops_do) and 
> JvmtiExport::oops_do.
> VMOperationQueue::oops_do will call VM_ChangeBreakpoint::oops_do which 
> calls JvmtiBreakpoints::oops_do. The problem is that 
> JvmtiExport::oops_do calls JvmtiCurrentBreakpoints::oops_do which 
> points to the same JvmtiBreakpoints as the one VM_ChangeBreakpoint 
> just called oops_do on.
> This change remove the code VM_ChangeBreakpoint that calls 
> JvmtiBreakpoints::oops_do. All the GCs will visit the breakpoints via 
> JvmtiExport.
> Webrev:
> http://cr.openjdk.java.net/~ehelin/6843375/webrev/

The change looks good. I'll re-review it after you and Jon has decided 
on the more future-proof solution.


> Testing:
> Bug:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6843375
> Thanks,
> Erik

More information about the hotspot-gc-dev mailing list