Attached simple Test.java fails with an assert when running with "-Xint -XX:+UseNullableValueFlattening -XX:-UseAtomicValueFlattening -XX:-UseNonAtomicValueFlattening":
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/oracle/valhalla/open/src/hotspot/share/prims/unsafe.cpp:464), pid=583932, tid=583933
# assert(layoutKind != (int)LayoutKind::REFERENCE) failed: This method handles only flat layouts
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-04-07-0554029.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-04-07-0554029.tobias..., interpreted mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1a8c591] Unsafe_GetFlatValue+0x471
Current thread (0x00007bf7d002d8d0): JavaThread "main" [_thread_in_vm, id=583933, stack(0x00007bf7d6217000,0x00007bf7d6317000) (1024K)]
Stack: [0x00007bf7d6217000,0x00007bf7d6317000], sp=0x00007bf7d6314f20, free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1a8c591] Unsafe_GetFlatValue+0x471 (unsafe.cpp:464)
j jdk.internal.misc.Unsafe.getFlatValue(Ljava/lang/Object;JILjava/lang/Class;)Ljava/lang/Object;+0 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08a400.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+43 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af090800.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+17 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d400.guard(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+34 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d000.reinvoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+20 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d400.guard(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+74 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d000.reinvoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+20 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af091c00.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+128 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af091000.invoke_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+22 java.base
j java.lang.runtime.ValueObjectMethods.isSubstitutable(Ljava/lang/Object;Ljava/lang/Object;)Z+96 java.base
v ~StubRoutines::call_stub 0x00007bf7cd000d01
V [libjvm.so+0xfdce9f] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4df (javaCalls.cpp:429)
V [libjvm.so+0xfbf281] InterpreterRuntime::is_substitutable(JavaThread*, oopDesc*, oopDesc*)+0x301 (interpreterRuntime.cpp:356)
j Test.main([Ljava/lang/String;)V+18
v ~StubRoutines::call_stub 0x00007bf7cd000d01
V [libjvm.so+0xfdce9f] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4df (javaCalls.cpp:429)
V [libjvm.so+0x1125be0] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*) [clone .constprop.1]+0x410 (jni.cpp:887)
V [libjvm.so+0x1129b70] jni_CallStaticVoidMethod+0x210 (jni.cpp:1746)
C [libjli.so+0x3a3a] invokeStaticMainWithArgs+0x4a (java.c:392)
C [libjli.so+0x4af9] JavaMain+0xee9 (java.c:640)
C [libjli.so+0x7b19] ThreadJavaMain+0x9 (java_md.c:649)
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/oracle/valhalla/open/src/hotspot/share/prims/unsafe.cpp:464), pid=583932, tid=583933
# assert(layoutKind != (int)LayoutKind::REFERENCE) failed: This method handles only flat layouts
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-04-07-0554029.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-04-07-0554029.tobias..., interpreted mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1a8c591] Unsafe_GetFlatValue+0x471
Current thread (0x00007bf7d002d8d0): JavaThread "main" [_thread_in_vm, id=583933, stack(0x00007bf7d6217000,0x00007bf7d6317000) (1024K)]
Stack: [0x00007bf7d6217000,0x00007bf7d6317000], sp=0x00007bf7d6314f20, free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1a8c591] Unsafe_GetFlatValue+0x471 (unsafe.cpp:464)
j jdk.internal.misc.Unsafe.getFlatValue(Ljava/lang/Object;JILjava/lang/Class;)Ljava/lang/Object;+0 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08a400.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+43 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af090800.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+17 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d400.guard(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+34 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d000.reinvoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+20 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d400.guard(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+74 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af08d000.reinvoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+20 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af091c00.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+128 java.base
j java.lang.invoke.LambdaForm$MH+0x00000000af091000.invoke_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+22 java.base
j java.lang.runtime.ValueObjectMethods.isSubstitutable(Ljava/lang/Object;Ljava/lang/Object;)Z+96 java.base
v ~StubRoutines::call_stub 0x00007bf7cd000d01
V [libjvm.so+0xfdce9f] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4df (javaCalls.cpp:429)
V [libjvm.so+0xfbf281] InterpreterRuntime::is_substitutable(JavaThread*, oopDesc*, oopDesc*)+0x301 (interpreterRuntime.cpp:356)
j Test.main([Ljava/lang/String;)V+18
v ~StubRoutines::call_stub 0x00007bf7cd000d01
V [libjvm.so+0xfdce9f] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4df (javaCalls.cpp:429)
V [libjvm.so+0x1125be0] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*) [clone .constprop.1]+0x410 (jni.cpp:887)
V [libjvm.so+0x1129b70] jni_CallStaticVoidMethod+0x210 (jni.cpp:1746)
C [libjli.so+0x3a3a] invokeStaticMainWithArgs+0x4a (java.c:392)
C [libjli.so+0x4af9] JavaMain+0xee9 (java.c:640)
C [libjli.so+0x7b19] ThreadJavaMain+0x9 (java_md.c:649)
- duplicates
-
JDK-8348606 [lworld] Substitutability test may perform heap allocations
-
- Resolved
-