-
Bug
-
Resolution: Fixed
-
P3
-
repo-valhalla
compiler/intrinsics/string/TestStringIntrinsicRangeChecks.java
compiler/intrinsics/string/TestStringConstruction.java
Reproduce directly without jtreg:
$ java -XX:-TieredCompilation -XX:+StressGCM TestStringConstruction.java
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f53591742a1, pid=3151228, tid=3151245
#
# JRE version: Java(TM) SE Runtime Environment (23.0) (fastdebug build 23-lworld5ea-2024-05-08-0913027.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-lworld5ea-2024-05-08-0913027.tobias..., mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# J 28 c2 java.util.Formatter.format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; java.base (284 bytes) @ 0x00007f53591742a1 [0x00007f5359173140+0x0000000000001161]
Stack: [0x00007f5341164000,0x00007f5341265000], sp=0x00007f5341262ef0, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
J 28 c2 java.util.Formatter.format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; java.base (284 bytes) @ 0x00007f53591742a1 [0x00007f5359173140+0x0000000000001161]
j java.util.Formatter.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;+7 java.base
j java.lang.String.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+9 java.base
j jdk.internal.util.Preconditions.outOfBoundsMessage(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;+418 java.base
j jdk.internal.util.Preconditions$4.apply(Ljava/lang/String;Ljava/util/List;)Ljava/lang/RuntimeException;+6 java.base
j jdk.internal.util.Preconditions$4.apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+9 java.base
j jdk.internal.util.Preconditions.outOfBounds(Ljava/util/function/BiFunction;Ljava/lang/String;[Ljava/lang/Number;)Ljava/lang/RuntimeException;+16 java.base
j jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Ljava/util/function/BiFunction;III)Ljava/lang/RuntimeException;+28 java.base
j jdk.internal.util.Preconditions.checkFromIndexSize(IIILjava/util/function/BiFunction;)I+19 java.base
j java.lang.String.checkBoundsOffCount(III)I+6 java.base
j java.lang.String.rangeCheck([CII)Ljava/lang/Void;+4 java.base
j java.lang.String.<init>([CII)V+7 java.base
j compiler.intrinsics.string.TestStringConstruction.test([C)Ljava/lang/String;+8
j compiler.intrinsics.string.TestStringConstruction.main([Ljava/lang/String;)V+15
j java.lang.invoke.LambdaForm$DMH+0x000000008a0c6000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base
j java.lang.invoke.LambdaForm$MH+0x000000008a0c7c00.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base
j java.lang.invoke.LambdaForm$MH+0x000000008a0c8000.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base
j java.lang.Thread.run()V+19 java.base
v ~StubRoutines::call_stub 0x00007f5359000d21
V [libjvm.so+0xf1490a] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4aa (javaCalls.cpp:429)
V [libjvm.so+0xf152a5] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x345 (javaCalls.cpp:331)
V [libjvm.so+0xf154c6] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0x76 (javaCalls.cpp:193)
V [libjvm.so+0x107cc73] thread_entry(JavaThread*, JavaThread*)+0x93 (jvm.cpp:3044)
V [libjvm.so+0xf4a4ac] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:722)
V [libjvm.so+0x1870aa6] Thread::call_run()+0xb6 (thread.cpp:221)
V [libjvm.so+0x155fb77] thread_native_entry(Thread*)+0x127 (os_linux.cpp:817)
compiler/intrinsics/string/TestStringConstruction.java
Reproduce directly without jtreg:
$ java -XX:-TieredCompilation -XX:+StressGCM TestStringConstruction.java
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f53591742a1, pid=3151228, tid=3151245
#
# JRE version: Java(TM) SE Runtime Environment (23.0) (fastdebug build 23-lworld5ea-2024-05-08-0913027.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-lworld5ea-2024-05-08-0913027.tobias..., mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# J 28 c2 java.util.Formatter.format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; java.base (284 bytes) @ 0x00007f53591742a1 [0x00007f5359173140+0x0000000000001161]
Stack: [0x00007f5341164000,0x00007f5341265000], sp=0x00007f5341262ef0, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
J 28 c2 java.util.Formatter.format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; java.base (284 bytes) @ 0x00007f53591742a1 [0x00007f5359173140+0x0000000000001161]
j java.util.Formatter.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;+7 java.base
j java.lang.String.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+9 java.base
j jdk.internal.util.Preconditions.outOfBoundsMessage(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;+418 java.base
j jdk.internal.util.Preconditions$4.apply(Ljava/lang/String;Ljava/util/List;)Ljava/lang/RuntimeException;+6 java.base
j jdk.internal.util.Preconditions$4.apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+9 java.base
j jdk.internal.util.Preconditions.outOfBounds(Ljava/util/function/BiFunction;Ljava/lang/String;[Ljava/lang/Number;)Ljava/lang/RuntimeException;+16 java.base
j jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Ljava/util/function/BiFunction;III)Ljava/lang/RuntimeException;+28 java.base
j jdk.internal.util.Preconditions.checkFromIndexSize(IIILjava/util/function/BiFunction;)I+19 java.base
j java.lang.String.checkBoundsOffCount(III)I+6 java.base
j java.lang.String.rangeCheck([CII)Ljava/lang/Void;+4 java.base
j java.lang.String.<init>([CII)V+7 java.base
j compiler.intrinsics.string.TestStringConstruction.test([C)Ljava/lang/String;+8
j compiler.intrinsics.string.TestStringConstruction.main([Ljava/lang/String;)V+15
j java.lang.invoke.LambdaForm$DMH+0x000000008a0c6000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base
j java.lang.invoke.LambdaForm$MH+0x000000008a0c7c00.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base
j java.lang.invoke.LambdaForm$MH+0x000000008a0c8000.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base
j java.lang.Thread.run()V+19 java.base
v ~StubRoutines::call_stub 0x00007f5359000d21
V [libjvm.so+0xf1490a] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x4aa (javaCalls.cpp:429)
V [libjvm.so+0xf152a5] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x345 (javaCalls.cpp:331)
V [libjvm.so+0xf154c6] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0x76 (javaCalls.cpp:193)
V [libjvm.so+0x107cc73] thread_entry(JavaThread*, JavaThread*)+0x93 (jvm.cpp:3044)
V [libjvm.so+0xf4a4ac] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:722)
V [libjvm.so+0x1870aa6] Thread::call_run()+0xb6 (thread.cpp:221)
V [libjvm.so+0x155fb77] thread_native_entry(Thread*)+0x127 (os_linux.cpp:817)