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.
StefanK
>
> Testing:
> JPRT
>
> Bug:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6843375
>
> Thanks,
> Erik
More information about the hotspot-gc-dev
mailing list