8055239: assert(_thread == Thread::current()->osthread()) failed: The PromotionFailedInfo should be thread local
authorsangheki
Wed, 26 Nov 2014 21:38:25 -0800
changeset 27895 bf55adf78eeb
parent 27894 a19eb073e862
child 27896 d4bd2f8b3055
8055239: assert(_thread == Thread::current()->osthread()) failed: The PromotionFailedInfo should be thread local Summary: Changed to trace and reset before second use of PromotionFailedInfo. Reviewed-by: jmasa, brutisso, kbarrett
hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	Wed Nov 26 20:36:36 2014 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	Wed Nov 26 21:38:25 2014 -0800
@@ -999,6 +999,11 @@
   thread_state_set.reset(0 /* Bad value in debug if not reset */,
                          promotion_failed());
 
+  // Trace and reset failed promotion info.
+  if (promotion_failed()) {
+    thread_state_set.trace_promotion_failed(gc_tracer);
+  }
+
   // Process (weak) reference objects found during scavenge.
   ReferenceProcessor* rp = ref_processor();
   IsAliveClosure is_alive(this);