- 
    Bug 
- 
    Resolution: Unresolved
- 
     P3 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
 
-