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
--- 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);