Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8153172

aarch64: hotspot crashes after the 8.1 LSE patch is merged

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • 9
    • hotspot
    • None
    • 9
    • b115
    • aarch64
    • linux

        Testcase:
        import java.util.concurrent.atomic.AtomicReference;
        import sun.misc.Unsafe;
        public class TestUnsafe extends AtomicReference<Node>{
          public static void main(String[] args) {
            for (int i = 0; i < 10000; i++) {
                Node n1 = new Node(i);
                Node n2 = new Node(i+1);
                TestUnsafe t = new TestUnsafe(n1);
                Node old = t.foo(n2);

                if(old.next.v > 20000) {
                   System.out.println("not enter here" + old.next.v);
                }
            }
          }
          TestUnsafe(Node n) {super(n);}

          public Node foo(Node n) {
            Node old;
            old = this.getAndSet(n); // inline sun.misc.Unsafe::getAndSetObject here
            old.next = n;
            return old;
          }
        }
        class Node
        {
           int v;
           Node next;
           Node(int i) {v = i; next = null;}
        }

        Hotspot error message:
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (/home/yangfei/openjdk9_hs-comp/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp:1157), pid=7967, tid=8040
        # guarantee(Rs != Rn && Rs != Rt) failed: unpredictable instruction
        ......

        Stack: [0x0000007e1b800000,0x0000007e1ba00000], sp=0x0000007e1b9fcd70, free space=2035k
        Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.so+0xf8ddb0] VMError::report(outputStream*, bool)+0x111c
        V [libjvm.so+0xf8fd44] VMError::report_and_die(int, char const*, char const*, std::__va_list, Thread*, unsigned char*, void*, void*, cha
        r const*, int, unsigned long)+0x528
        V [libjvm.so+0xf8f720] VMError::report_and_die(Thread*, char const*, int, char const*, char const*, std::__va_list)+0x90
        V [libjvm.so+0x75a1d0] report_vm_error(char const*, int, char const*, char const*, ...)+0x104
        V [libjvm.so+0x40b684] Assembler::stlxrw(RegisterImpl*, RegisterImpl*, RegisterImpl*)+0x74
        V [libjvm.so+0xc20008] MacroAssembler::atomic_xchgalw(RegisterImpl*, RegisterImpl*, RegisterImpl*)+0x164
        V [libjvm.so+0x4f58f8] LIR_Assembler::atomic_op(LIR_Code, LIR_OprDesc*, LIR_OprDesc*, LIR_OprDesc*, LIR_OprDesc*)+0x4dc
        V [libjvm.so+0x4e3d80] LIR_Assembler::emit_op2(LIR_Op2*)+0x488
        V [libjvm.so+0x4d5994] LIR_Op2::emit_code(LIR_Assembler*)+0x30
        V [libjvm.so+0x4e2510] LIR_Assembler::emit_lir_list(LIR_List*)+0x184
        V [libjvm.so+0x4e2360] LIR_Assembler::emit_block(BlockBegin*)+0x198
        V [libjvm.so+0x4e2150] LIR_Assembler::emit_code(BlockList*)+0x6c
        V [libjvm.so+0x485cc4] Compilation::emit_code_body()+0x128
        V [libjvm.so+0x485fd0] Compilation::compile_java_method()+0x238
        V [libjvm.so+0x48631c] Compilation::compile_method()+0xec
        V [libjvm.so+0x4869a8] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, DirectiveSet*)+0x200
        V [libjvm.so+0x48c78c] Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0xa0
        V [libjvm.so+0x6eeb6c] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x608
        V [libjvm.so+0x6edc4c] CompileBroker::compiler_thread_loop()+0x288
        V [libjvm.so+0xf19ef0] compiler_thread_entry(JavaThread*, Thread*)+0x80
        V [libjvm.so+0xf14830] JavaThread::thread_main_inner()+0x15c
        V [libjvm.so+0xf146a0] JavaThread::run()+0x1c4
        V [libjvm.so+0xd3359c] java_start(Thread*)+0x194
        C [libpthread.so.0+0x7c50] start_thread+0xb0
        C [libc.so.6+0xdac60] thread_start+0x30

              fyang Fei Yang
              fyang Fei Yang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: