RFR: 8220682: runtime/ErrorHandling/TestHeapDumpOnOutOfMemoryErrorInMetaspace.java fails with JDK-8214712

Claes Redestad claes.redestad at oracle.com
Fri Mar 15 12:10:10 UTC 2019


Hi,

to allow for archiving objects in CDS that might not be loaded (e.g.,
JDK-8214712), we need to ignore objects at heap dump time that haven't
actually been loaded. This patch fixes the VM heapDumper implementation,
and is a mirror of a fix already done in the serviceability-agent heap
dumper[1].

Bug: https://bugs.openjdk.java.net/browse/JDK-8220682
Patch:
diff -r 082cd1e3c441 src/hotspot/share/services/heapDumper.cpp
--- a/src/hotspot/share/services/heapDumper.cpp	Mon Dec 03 16:25:27 2018 
+0100
+++ b/src/hotspot/share/services/heapDumper.cpp	Fri Mar 15 13:11:28 2019 
+0100
@@ -958,6 +958,11 @@
  // creates HPROF_GC_INSTANCE_DUMP record for the given object
  void DumperSupport::dump_instance(DumpWriter* writer, oop o) {
    Klass* k = o->klass();
+  if (k->java_mirror() == NULL) {
+    // Ignoring this object since the corresponding java mirror is not 
loaded.
+    // Might be a dormant archive object.
+    return;
+  }

    writer->write_u1(HPROF_GC_INSTANCE_DUMP);
    writer->write_objectID(o);


Thanks!

/Claes

[1] https://bugs.openjdk.java.net/browse/JDK-8214756


More information about the serviceability-dev mailing list