< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp

Print this page
rev 57589 : 8237632: Shenandoah fails some vmTestbase_nsk_jvmti tests with "Forwardee must point to a heap address"

@@ -232,16 +232,19 @@
                     "Non-trivial forwardee should in another region",
                     file, line);
     }
 
     // Step 4. Check for multiple forwardings
+    /*
+      Disable for now. JVMTI heap walking creates 'forwarded' pattern outside cset
     oop fwd2 = oop(ShenandoahForwarding::get_forwardee_raw_unchecked(fwd));
     if (fwd != fwd2) {
       print_failure(_safe_all, obj, interior_loc, NULL, "Shenandoah assert_correct failed",
                     "Multiple forwardings",
                     file, line);
     }
+    */
   }
 }
 
 void ShenandoahAsserts::assert_in_correct_region(void* interior_loc, oop obj, const char* file, int line) {
   assert_correct(interior_loc, obj, file, line);

@@ -373,5 +376,14 @@
   }
 
   ShenandoahMessageBuffer msg("Must ba at a Shenandoah safepoint or held %s lock", lock->name());
   report_vm_error(file, line, msg.buffer());
 }
+
+#ifdef ASSERT
+bool ShenandoahAsserts::can_verify_oop(oop obj) {
+  if (CompressedOops::is_null(obj)) return true;
+  ShenandoahHeap* const heap = ShenandoahHeap::heap_no_check();
+  if (heap->in_collection_set(obj)) return true;
+  return false;
+}
+#endif
< prev index next >