diff src/share/vm/services/memTrackWorker.cpp @ 6741:33143ee07800

7181995: NMT ON: NMT assertion failure assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record Summary: Fixed virtual memory records merge and promotion logic, should be based on sequence number vs. base address order Reviewed-by: coleenp, acorn
author zgu
date Tue, 11 Sep 2012 20:53:17 -0400
parents 4acebbe310e1
children ecd24264898b
line wrap: on
line diff
--- a/src/share/vm/services/memTrackWorker.cpp	Tue Sep 04 16:20:28 2012 -0700
+++ b/src/share/vm/services/memTrackWorker.cpp	Tue Sep 11 20:53:17 2012 -0400
@@ -118,7 +118,10 @@
           _head = (_head + 1) % MAX_GENERATIONS;
         }
         // promote this generation data to snapshot
-        snapshot->promote();
+        if (!snapshot->promote()) {
+          // failed to promote, means out of memory
+          MemTracker::shutdown(MemTracker::NMT_out_of_memory);
+        }
       } else {
         snapshot->wait(1000);
         ThreadCritical tc;