Since JDK-8317269, when assembling an AOT cache, AOT class linking can be disabled under a few circumstances:
1. -XX:-AOTClassLinking is specified
2. -XX:-UseCompressedClassPointers (this disabled heap dumping)
3. Fill module graph caching is disabled due to incompatible module flags
In an old class is loaded by the application during the training run, we could get an assert like this:
# assert(can_be_verified_at_dumptime()) failed: must be
Stack: [0x000000731f900000,0x000000731fa00000], sp=0x000000731f9fec50, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xbf7254] InstanceKlass::remove_unshareable_info+0x44 (instanceKlass.cpp:2648)
V [jvm.dll+0x3ce6de] ArchiveBuilder::make_klasses_shareable+0xf6e (archiveBuilder.cpp:959)
V [jvm.dll+0x3bddf3] VM_PopulateDumpSharedSpace::doit+0x193 (aotMetaspace.cpp:689)
V [jvm.dll+0x154027d] VM_Operation::evaluate+0xbd (vmOperations.cpp:74)
V [jvm.dll+0x155163b] VMThread::evaluate_operation+0x8b (vmThread.cpp:284)
V [jvm.dll+0x1551a1c] VMThread::inner_execute+0x35c (vmThread.cpp:421)
V [jvm.dll+0x1551e47] VMThread::loop+0x117 (vmThread.cpp:487)
V [jvm.dll+0x1552203] VMThread::run+0xf3 (vmThread.cpp:177)
V [jvm.dll+0x1473b9e] Thread::call_run+0x18e (thread.cpp:243)
V [jvm.dll+0x11ba7c5] thread_native_entry+0x105 (os_windows.cpp:555)
C [ucrtbase.dll+0x21bb2] (no source info available)
C [KERNEL32.DLL+0x17344] (no source info available)
C [ntdll.dll+0x526b1] (no source info available)
1. -XX:-AOTClassLinking is specified
2. -XX:-UseCompressedClassPointers (this disabled heap dumping)
3. Fill module graph caching is disabled due to incompatible module flags
In an old class is loaded by the application during the training run, we could get an assert like this:
# assert(can_be_verified_at_dumptime()) failed: must be
Stack: [0x000000731f900000,0x000000731fa00000], sp=0x000000731f9fec50, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xbf7254] InstanceKlass::remove_unshareable_info+0x44 (instanceKlass.cpp:2648)
V [jvm.dll+0x3ce6de] ArchiveBuilder::make_klasses_shareable+0xf6e (archiveBuilder.cpp:959)
V [jvm.dll+0x3bddf3] VM_PopulateDumpSharedSpace::doit+0x193 (aotMetaspace.cpp:689)
V [jvm.dll+0x154027d] VM_Operation::evaluate+0xbd (vmOperations.cpp:74)
V [jvm.dll+0x155163b] VMThread::evaluate_operation+0x8b (vmThread.cpp:284)
V [jvm.dll+0x1551a1c] VMThread::inner_execute+0x35c (vmThread.cpp:421)
V [jvm.dll+0x1551e47] VMThread::loop+0x117 (vmThread.cpp:487)
V [jvm.dll+0x1552203] VMThread::run+0xf3 (vmThread.cpp:177)
V [jvm.dll+0x1473b9e] Thread::call_run+0x18e (thread.cpp:243)
V [jvm.dll+0x11ba7c5] thread_native_entry+0x105 (os_windows.cpp:555)
C [ucrtbase.dll+0x21bb2] (no source info available)
C [KERNEL32.DLL+0x17344] (no source info available)
C [ntdll.dll+0x526b1] (no source info available)
- caused by
-
JDK-8317269 Store old classes in linked state in AOT cache
-
- Resolved
-
- links to
-
Commit(master)
openjdk/jdk/b3e408c0
-
Review(master)
openjdk/jdk/28365