review request for 7130319: C2: running with -XX:+PrintOptoAssembly crashes the VM with assert(false) failed: bad tag in log
david.holmes at oracle.com
Mon Jan 23 20:13:39 PST 2012
On 24/01/2012 2:09 PM, Dean Long wrote:
> David, thanks for the review. How many reviews do I need before I can
Two. Though there seems to be some leeway as to whether both must be
> On 1/23/2012 7:01 PM, David Holmes wrote:
>> Looks good to me.
>> On 24/01/2012 5:25 AM, Dean Long wrote:
>>> The problem is that the VM thread is trying to exit while another
>>> thread is writing to the XML log. The VM thread also wants to write
>>> to the log, but notices the tag stack doesn't match up. A similar
>>> problem came up before (6295565) and the solution was to relax the
>>> assertion if we were shutting down through JNI DestroyJavaVM. The
>>> above change follows that pattern and also allows shutdown
>>> through JVM_Halt.
>>> More details thanks to David Holmes:
>>> "To be clear the VMThread is writing to the log (actually closing it) as
>>> part of exit_globals() while executing VM_Exit::doit. This happens after
>>> it calls set_vm_exited() so we add that as a guard against doing the
>>> assertion. The problem arises because the CompilerThread was in the
>>> middle of some writing (as part of PrintOptoAssembly) when it entered
>>> the safepoint that allows the VM to exit."
More information about the hotspot-runtime-dev