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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Won't Fix
    • Affects Version/s: 5.0
    • Fix Version/s: 1.4.1
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • CPU:
      x86
    • OS:
      linux_redhat_3.0

      Backports

        Description

        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();
          
          ......
        =============================================

          Attachments

            Issue Links

              Activity

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: