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

IA64 - JVM crashes on Itanium 2 and AS3.0 box in 1.5b55 when stackoverflow occurs

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P3 P3
    • 1.4.1
    • 5.0
    • hotspot
    • x86
    • linux_redhat_3.0

        When the attached .java and .cpp are executed in Linux/Itanium bix,
        an crash occurs as the attached hs log files(crash-logs-142-tiger.tar.Z)

        REPRODUCE:
         1. Please compile J200314.java in javac and
            NativeCall_0005fOverflow_0005fand_0005fDeopt.c and NativeCall_0005fOverflow_0005fand_0005fDeopt.c
            in gcc on Linux (IA64) Box.
            
         2. Invoke
             "java -Djava.library.path=. -XX:CompileOnly=NativeCall_Overflow_and_Deopt.compiled J200314"
             
             
        CONFIGURATION:
           MPU : Intel Itenium 2
           OS : Red Hat Enterprise Linux AS 3.0(Japanese)
           JRE : 1.4.2_02 and 1.5.0-beta3-b55
             
         
        NOTE:
         The crash becomes not to occur when the following code block(FROM - TO)
         is added.
         
         ====== line# 2580 in interpreter_ia64.cpp ===
         ....
          __ call_VM_leaf(CAST_FROM_FN_PTR(address,
        InterpreterRuntime::create_StackOverflowError), GR4_thread);
          __ get_vm_result(GR8_exception);

          __ add(pending_exception_addr, thread_(pending_exception));
          __ st8(pending_exception_addr, GR8_exception);

          { /* FROM */
            Label L;
            const PredicateRegister is_recursive_call = PR15_SCRATCH;
            __ cmp(is_recursive_call, PR0, 0, GR_Iprev_state, Assembler::notEqual);
            __ br(is_recursive_call, L);
            __ call_VM_leaf(CAST_FROM_FN_PTR(address,
               SharedRuntime::exception_handler_for_return_address), GR_Lsave_RP);
            __ add(pending_exception_addr, thread_(pending_exception));
            __ mov(GR10, GR_RET);
            __ ld8(GR8_exception, pending_exception_addr);
            __ st8(pending_exception_addr, GR0);
            __ mov(GR9_issuing_pc, GR_Lsave_RP);
            __ mov(GR_Lsave_RP, GR10);
            __ bind(L);
          } /* TO */

          // Unwind to caller's interpreter state.
          __ pop_full_frame();
          __ ret();
          
          ......
        =============================================

              bobv Bob Vandette (Inactive)
              tbaba Tadayuki Baba (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: