JDK-5040872 : Client VM crash while compiling a large JSP generated method
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.2_03
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux_redhat_3.0
  • CPU: x86
  • Submitted: 2004-04-30
  • Updated: 2004-06-25
  • Resolved: 2004-05-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2_06 06Fixed
Related Reports
Relates :  
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
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
08-07-2004

WORK AROUND Excluding the following method helps overcome the crash with client VM: exclude org/apache/jsp/current$jsp _jspService
08-07-2004

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
08-07-2004

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
30-04-2004