diff src/share/vm/services/memTrackWorker.cpp @ 6599:4acebbe310e1

7185614: NMT ON: "check by caller" assertion failed on nsk ThreadMXBean test 7187429: NMT ON: Merge failure should cause NMT to shutdown Summary: Fixed NMT assertion failures Reviewed-by: acorn, kvn
author zgu
date Wed, 01 Aug 2012 17:19:30 -0400
parents d2a62e0f25eb
children 33143ee07800
line wrap: on
line diff
--- a/src/share/vm/services/memTrackWorker.cpp	Mon Jul 23 14:28:38 2012 -0700
+++ b/src/share/vm/services/memTrackWorker.cpp	Wed Aug 01 17:19:30 2012 -0400
@@ -99,9 +99,11 @@
     }
     if (rec != NULL) {
       // merge the recorder into staging area
-      bool result = snapshot->merge(rec);
-      assert(result, "merge failed");
-      debug_only(_merge_count ++;)
+      if (!snapshot->merge(rec)) {
+        MemTracker::shutdown(MemTracker::NMT_out_of_memory);
+      } else {
+        NOT_PRODUCT(_merge_count ++;)
+      }
       MemTracker::release_thread_recorder(rec);
     } else {
       // no more recorder to merge, promote staging area
@@ -129,7 +131,7 @@
   }
   assert(MemTracker::shutdown_in_progress(), "just check");
 
-  // transites to final shutdown
+  // transits to final shutdown
   MemTracker::final_shutdown();
 }