RFR: 8304147: JVM crash during shutdown when dumping dynamic archive [v2]

David Holmes dholmes at openjdk.org
Mon Mar 27 21:31:08 UTC 2023


On Mon, 27 Mar 2023 21:16:14 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> The HandleMarks should be around the code that creates and uses the handles, so GC doesn't have to collect Handles that are not needed.  I don't see any Handle's escaping from link_shared_classes or any there.  If you remove the HandleMark does (or where does) the code assert?
>
> Yes it asserts. I'll have to reproduce it in the morning to get the stack again (test directory was overwritten). In the old code it comes from the JVM_ENTRY for `before_halt`, as that has a HandleMarkCleaner.

Stack: [0x00007f22cfdae000,0x00007f22cfeaf000],  sp=0x00007f22cfead390,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xf54cf4]  HandleArea::allocate_handle(oop)+0x214  (handles.cpp:40)
V  [libjvm.so+0xab3494]  ClassPrelinker::find_loaded_class(JavaThread*, oop, Symbol*)+0xb4  (handles.inline.hpp:42)
V  [libjvm.so+0xab42f2]  ClassPrelinker::maybe_resolve_class(constantPoolHandle, int, JavaThread*)+0xd2  (classPrelinker.cpp:173)
V  [libjvm.so+0xab4f0e]  ClassPrelinker::dumptime_resolve_constants(InstanceKlass*, JavaThread*)+0x40e  (classPrelinker.cpp:134)
V  [libjvm.so+0x1621479]  MetaspaceShared::link_shared_classes(bool, JavaThread*)+0x2f9  (metaspaceShared.cpp:621)
V  [libjvm.so+0xd01658]  DynamicArchive::dump_at_exit(JavaThread*, char const*)+0x318  (dynamicArchive.cpp:392)
V  [libjvm.so+0x1064ea6]  before_exit(JavaThread*, bool)+0x86  (java.cpp:445)
V  [libjvm.so+0x1ac8468]  Threads::destroy_vm()+0x1b8  (threads.cpp:1085)
V  [libjvm.so+0x118be7d]  jni_DestroyJavaVM+0xad  (jni.cpp:3735)

@coleenp I'm going to assume you will say that there is a missing HM in the ClassPrelinker code. If so I will file an issue for that and add it to this PR.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13134#discussion_r1149808354


More information about the hotspot-runtime-dev mailing list