-
Bug
-
Resolution: Unresolved
-
P3
-
8, openjdk8u222
-
AVX2
-
x86_64
String.compareTo is an intrinsics and commonly generated by C2.
JVM may crash in the AVX2 version of MacroAssembler::string_compare. A classic crashsite is as follows.
# J 1456 C2 java.lang.String.compareTo(Ljava/lang/Object;)I (9 bytes) @ 0x00007ffb0d830235 [0x00007ffb0d830160+0xd5]
broken instruction:
vmovdqu ymm0, ymmword ptr [rdi + rax*2] <-- 0x00007ffb0d830235
RAX=0xffffffff00000036 indicates that it has been corrupted.
We also observed the same problem in # J 9048 C2 google.common.collect.RegularImmutableSortedSet.contains(Ljava/lang/Object;)Z (21 bytes).
This problem is hard to reproduce.
JVM may crash in the AVX2 version of MacroAssembler::string_compare. A classic crashsite is as follows.
# J 1456 C2 java.lang.String.compareTo(Ljava/lang/Object;)I (9 bytes) @ 0x00007ffb0d830235 [0x00007ffb0d830160+0xd5]
broken instruction:
vmovdqu ymm0, ymmword ptr [rdi + rax*2] <-- 0x00007ffb0d830235
RAX=0xffffffff00000036 indicates that it has been corrupted.
We also observed the same problem in # J 9048 C2 google.common.collect.RegularImmutableSortedSet.contains(Ljava/lang/Object;)Z (21 bytes).
This problem is hard to reproduce.
- relates to
-
JDK-8294862 crash at C2 java.lang.String.compareTo(Ljava/lang/Object;)
-
- Closed
-