8153527: break_tty_lock_for_safepoint causes "assert(false) failed: bad tag in log" and broken compile log
authorneliasso
Fri, 22 Apr 2016 16:05:00 +0200
changeset 38219 d4fc04931803
parent 38218 f5ba1dea04eb
child 38222 a20cc07facd6
8153527: break_tty_lock_for_safepoint causes "assert(false) failed: bad tag in log" and broken compile log Summary: Retake tty_lock before printing closing tag in print_optoassembly Reviewed-by: kvn
hotspot/src/share/vm/opto/output.cpp
--- a/hotspot/src/share/vm/opto/output.cpp	Wed Apr 13 14:48:22 2016 +0200
+++ b/hotspot/src/share/vm/opto/output.cpp	Fri Apr 22 16:05:00 2016 +0200
@@ -1548,6 +1548,10 @@
       }
       dump_asm(node_offsets, node_offset_limit);
       if (xtty != NULL) {
+        // print_metadata and dump_asm above may safepoint which makes us loose the ttylock.
+        // Retake lock too make sure the end tag is coherent, and that xmlStream->pop_tag is done
+        // thread safe
+        ttyLocker ttyl2;
         xtty->tail("opto_assembly");
       }
     }