gc/TestFullGCALot.java hit this assert in the loom repo. The startup of the Reference Handler and Finalizer have changed slightly in the loom repo, now started explicitly in initPhase1 rather than via the Reference initializer before.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (t:\workspace\open\src\hotspot\share\classfile\systemDictionary.cpp:995), pid=27480, tid=40036
# assert(SystemDictionary::is_shared_class_visible_impl(class_name, ik, pkg_entry, class_loader)) failed: visibility cannot change between dump time and runtime
Current thread (0x0000022513fb2f40): JavaThread "Reference Handler" daemon [_thread_in_vm, id=40036, stack(0x0000007dfa300000,0x0000007dfa400000)]
Stack: [0x0000007dfa300000,0x0000007dfa400000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc47701] os::platform_print_native_stack+0xf1 (os_windows_x86.cpp:235)
V [jvm.dll+0xeaa04b] VMError::report+0x10eb (vmError.cpp:835)
V [jvm.dll+0xeabb2e] VMError::report_and_die+0x7fe (vmError.cpp:1664)
V [jvm.dll+0xeac2b4] VMError::report_and_die+0x64 (vmError.cpp:1445)
V [jvm.dll+0x5821b7] report_vm_error+0xb7 (debug.cpp:283)
V [jvm.dll+0xdda748] SystemDictionary::is_shared_class_visible+0x178 (systemDictionary.cpp:994)
V [jvm.dll+0xddb5c7] SystemDictionary::load_shared_class+0xf7 (systemDictionary.cpp:1144)
V [jvm.dll+0xddb15e] SystemDictionary::load_instance_class_impl+0x20e (systemDictionary.cpp:1281)
V [jvm.dll+0xddd1df] SystemDictionary::resolve_instance_class_or_null+0x8bf (systemDictionary.cpp:723)
V [jvm.dll+0xddd76f] SystemDictionary::resolve_or_fail+0x6f (systemDictionary.cpp:265)
V [jvm.dll+0x54a541] ConstantPool::klass_at_impl+0x3a1 (constantPool.cpp:514)
V [jvm.dll+0x7be469] InterpreterRuntime::ldc+0x269 (interpreterRuntime.cpp:157)
C 0x0000022507553dff
C 0x0000022507553dff
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.ref.Reference$ReferenceHandler.run()V+3 java.base@19-loomvt
v ~StubRoutines::call_stub 0x00000225075310a7
public void java.lang.ref.Reference$ReferenceHandler::run()
Code:
0: invokestatic #7 // Method jdk/internal/misc/Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
3: ldc #13 // class jdk/internal/ref/Cleaner <<<<<<<<<<<<<<<<<<<<<< HERE
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (t:\workspace\open\src\hotspot\share\classfile\systemDictionary.cpp:995), pid=27480, tid=40036
# assert(SystemDictionary::is_shared_class_visible_impl(class_name, ik, pkg_entry, class_loader)) failed: visibility cannot change between dump time and runtime
Current thread (0x0000022513fb2f40): JavaThread "Reference Handler" daemon [_thread_in_vm, id=40036, stack(0x0000007dfa300000,0x0000007dfa400000)]
Stack: [0x0000007dfa300000,0x0000007dfa400000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc47701] os::platform_print_native_stack+0xf1 (os_windows_x86.cpp:235)
V [jvm.dll+0xeaa04b] VMError::report+0x10eb (vmError.cpp:835)
V [jvm.dll+0xeabb2e] VMError::report_and_die+0x7fe (vmError.cpp:1664)
V [jvm.dll+0xeac2b4] VMError::report_and_die+0x64 (vmError.cpp:1445)
V [jvm.dll+0x5821b7] report_vm_error+0xb7 (debug.cpp:283)
V [jvm.dll+0xdda748] SystemDictionary::is_shared_class_visible+0x178 (systemDictionary.cpp:994)
V [jvm.dll+0xddb5c7] SystemDictionary::load_shared_class+0xf7 (systemDictionary.cpp:1144)
V [jvm.dll+0xddb15e] SystemDictionary::load_instance_class_impl+0x20e (systemDictionary.cpp:1281)
V [jvm.dll+0xddd1df] SystemDictionary::resolve_instance_class_or_null+0x8bf (systemDictionary.cpp:723)
V [jvm.dll+0xddd76f] SystemDictionary::resolve_or_fail+0x6f (systemDictionary.cpp:265)
V [jvm.dll+0x54a541] ConstantPool::klass_at_impl+0x3a1 (constantPool.cpp:514)
V [jvm.dll+0x7be469] InterpreterRuntime::ldc+0x269 (interpreterRuntime.cpp:157)
C 0x0000022507553dff
C 0x0000022507553dff
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.ref.Reference$ReferenceHandler.run()V+3 java.base@19-loomvt
v ~StubRoutines::call_stub 0x00000225075310a7
public void java.lang.ref.Reference$ReferenceHandler::run()
Code:
0: invokestatic #7 // Method jdk/internal/misc/Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
3: ldc #13 // class jdk/internal/ref/Cleaner <<<<<<<<<<<<<<<<<<<<<< HERE