United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5040872 Client VM crash while compiling a large JSP generated method
JDK-5040872 : Client VM crash while compiling a large JSP generated method

Details
Type:
Bug
Submit Date:
2004-04-30
Status:
Resolved
Updated Date:
2004-06-25
Project Name:
JDK
Resolved Date:
2004-05-11
Component:
hotspot
OS:
linux_redhat_3.0
Sub-Component:
compiler
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.2_03
Fixed Versions:
1.4.2_06 (06)

Related Reports
Backport:
Relates:

Sub Tasks

Description
Our application is a webapp that configures and report network route changes. There is a particular page that the crashes occurs. This is a simple reporting page, which process http request, execute one SQL query to db, and report the result in the table.

Attached are the hs_err file and output from gdb. 

Our Hardware:
IBM x335, Intel Zeon 2.0GHz CPU 

Our Software:
java 1.4.2_03
RedHat Enterprise Linux ES 3.0
Sybase 8.0.2
Apache Tomcat 4.0.6
Apache Struts 1.0.2

                                    

Comments
EVALUATION

There's a problem with the fix for 4702051.  When it bails out it returns NULL from append_base which ends up putting a NULL instruction into an If.  A little bit of processing occurs on the If before we notice the bailout and we die trying access one of the operands of the If since it should always be non-null, but append_base returned null for it.  The fix is to modify append_base to do it's normal processing in all cases even in the bailout case.

Here's a stack trace from gdb.

#0  0xb75ebc32 in _dl_start () from /lib/ld-linux.so.2
(gdb) where
#0  0xb75ebc32 in _dl_start () from /lib/ld-linux.so.2
#1  0xb74c4235 in ?? ()
#2  0xb72cc568 in os::abort () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#3  0xb72c91fa in os::handle_unexpected_exception ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#4  0xb72cce2a in JVM_handle_linux_signal () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#5  0xb72cbde8 in signalHandler () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#6  0xb75dfdf0 in ?? ()
#7  0xb733d182 in If::visit () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#8  0xb714de67 in GraphBuilder::append_base () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#9  0xb715372b in GraphBuilder::append () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#10 0xb714a0df in GraphBuilder::if_node () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#11 0xb714a2dd in GraphBuilder::if_null () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#12 0xb7150603 in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#13 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#14 0xb71516d5 in GraphBuilder::try_inline_jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#15 0xb714a6a8 in GraphBuilder::jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#16 0xb715080f in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#17 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#18 0xb71516d5 in GraphBuilder::try_inline_jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#19 0xb714a6a8 in GraphBuilder::jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#20 0xb715080f in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#21 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#22 0xb71516d5 in GraphBuilder::try_inline_jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#23 0xb714a6a8 in GraphBuilder::jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#24 0xb715080f in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#25 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#26 0xb71516d5 in GraphBuilder::try_inline_jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#27 0xb714a6a8 in GraphBuilder::jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#28 0xb715080f in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#29 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#30 0xb71516d5 in GraphBuilder::try_inline_jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#31 0xb714a6a8 in GraphBuilder::jsr () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#32 0xb715080f in GraphBuilder::iterate_bytecodes_for_block ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#33 0xb7150c04 in GraphBuilder::iterate_all_blocks ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#34 0xb715367c in GraphBuilder::GraphBuilder () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#35 0xb7154523 in IRScope::build_graph () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#36 0xb7154b02 in IRScope::IRScope () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#37 0xb71556dc in IR::IR () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#38 0xb71426c6 in Compilation::build_hir () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#39 0xb7142be6 in Compilation::compile_java_method ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#40 0xb71431aa in Compilation::compile_method () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#41 0xb7143353 in Compilation::Compilation () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#42 0xb7144524 in Compiler::compile_method () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#43 0xb71cc052 in CompileBroker::invoke_compiler_on_method ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#44 0xb71cb92b in CompileBroker::compiler_thread_loop ()
   from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#45 0xb73152c1 in compiler_thread_entry () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#46 0xb7315caa in JavaThread::thread_main_inner () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
---Type <return> to continue, or q <return> to quit---
#47 0xb7311674 in JavaThread::run () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so
#48 0xb72cd083 in _start () from /opt/CSCOoer/tools/jdk/jre/lib/i386/client/libjvm.so

###@###.### 2004-04-30
                                     
2004-04-30
SUGGESTED FIX

http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/export2/archived_workspaces/main/c2_baseline/2004/20040504135426.never.c1/workspace/webrevs/webrev-2004.05.04/index.html
                                     
2004-07-08
WORK AROUND

Excluding the following method helps overcome the crash with client VM:

exclude org/apache/jsp/current$jsp _jspService
                                     
2004-07-08
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_06
generic
tiger-beta2

FIXED IN:
1.4.2_06
tiger-beta2

INTEGRATED IN:
1.4.2_06
tiger-b51
tiger-beta2


                                     
2004-07-08



Hardware and Software, Engineered to Work Together