United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5079431 IA64 - JVM crashes on Itanium 2 and AS3.0 box in 1.5b55 when stackoverflow occurs
JDK-5079431 : IA64 - JVM crashes on Itanium 2 and AS3.0 box in 1.5b55 when stackoverflow occurs

Details
Type:
Bug
Submit Date:
2004-07-28
Status:
Closed
Updated Date:
2005-06-13
Project Name:
JDK
Resolved Date:
2005-06-13
Component:
hotspot
OS:
linux_redhat_3.0
Sub-Component:
runtime
CPU:
x86
Priority:
P3
Resolution:
Won't Fix
Affected Versions:
5.0
Fixed Versions:
1.4.1

Related Reports
Backport:

Sub Tasks

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

                                    

Comments
EVALUATION

I verified that this bug still exists in the latest Tiger 1.5 B60 although
the symptoms are quite different.  Here is the error we get using 1.5 B60.
It does appear that we should be unwinding when we get the stack overflow
rather than continue processing the error.

$JAVA_HOME/bin/java_g -XX:CompileOnly=NativeCall_Overflow_and_Deopt.compiled J200314
VM option 'CompileOnly=NativeCall_Overflow_and_Deopt.compiled'
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/vframeArray.cpp:151]
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error (/BUILD_AREA/jdk1.5.0/hotspot/src/share/vm/runtime/vframeArray.cpp, 151), pid=25146, tid=2305843011058940112
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0-beta3-b60-debug mixed mode)
#
# Error: shouldn't get exception during monitorenter
# An error report file with more information is saved as hs_err_pid25146.log

###@###.### 2004-07-29
###@###.### 2004-11-17 16:38:37 GMT

This bug has been closed as "Will Not Fix" due to a strategic
redirection of resources.  Bugs which
are escalations from external customers will continue to be
addressed by the support team.  Internal customers may escalate
bugs by filing them as priority 1 (P1) bugs.



###@###.### 2005-06-13 13:58:26 GMT
                                     
2005-06-13



Hardware and Software, Engineered to Work Together