JDK-6687570 : 64-bit server compiler crashed in Parse::merge_exception
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs12
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: x86
  • Submitted: 2008-04-11
  • Updated: 2010-05-10
  • Resolved: 2009-03-21
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
I have this crash stack (on linux/x64) using a pretty recent post-hs12 jvm)
from a customer. (The full hs_err log can be found in this directory:
/net/cores.central/cores/dir18/65874976/apr10 )

I am not sure if i can get the customer to run more
experiments since this crash seems to be new since 6u4, so at this point
helping us fix this crash in an unreleased product is not exactly a priority
for the customer and not the best use of their time.

[The code is here:
//-------------------------merge_exception-------------------------------------
// Merge the current mapping into the basic block starting at bci
// The ex_oop must be pushed on the stack, unlike throw_to_exit.
void Parse::merge_exception(int target_bci) {
  assert(sp() == 1, "must have only the throw exception on the stack");
  Block* target = successor_for_bci(target_bci);
  if (target == NULL) { handle_missing_successor(target_bci); return; }  <--------------
  assert(target->is_handler(), "exceptions are handled by special blocks");
  int pnum = target->add_new_path();
  merge_common(target, pnum);
}

//--------------------handle_missing_successor---------------------------------
void Parse::handle_missing_successor(int target_bci) {
#ifndef PRODUCT
  Block* b = block();
  int trap_bci = b->flow()->has_trap()? b->flow()->trap_bci(): -1;
  tty->print_cr("### Missing successor at bci:%d for block #%d (trap_bci:%d)", target_bci, b->pre_order(), trap_bci);
#endif
  ShouldNotReachHere(); <------------------
}
]



#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (parse1.cpp:1506), pid=18358, tid=1087596864
#  Error: ShouldNotReachHere()
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (12.0-b02-2008-04-10-064755.ysr.gc-clean mixed mode linux-amd64)
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x00002aafcd772c00):  JavaThread "CompilerThread0" daemon [_thread_in_native, id=18374, stack(0x0000000040c36000,0x0000000040d37000)]

Stack: [0x0000000040c36000,0x0000000040d37000],  sp=0x0000000040d34250,  free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x6046bf];;  VMError::report_and_die()+0x24f
V  [libjvm.so+0x271a72];;  report_should_not_reach_here(const char*, int)+0x42
V  [libjvm.so+0x501ce9];;  Parse::merge_exception(int)+0x59
V  [libjvm.so+0x2a61e0];;  Parse::catch_inline_exceptions(SafePointNode*)+0x630
V  [libjvm.so+0x50096c];;  Parse::do_exceptions()+0xcc
V  [libjvm.so+0x501ab2];;  Parse::do_one_block()+0x162
V  [libjvm.so+0x4ff8f7];;  Parse::visit_blocks()+0xa7
V  [libjvm.so+0x4ff7fc];;  Parse::do_all_blocks()+0x2c
V  [libjvm.so+0x4ff455];;  Parse::Parse(JVMState*, ciMethod*, float)+0x575
V  [libjvm.so+0x1e0444];;  ParseGenerator::generate(JVMState*)+0x84
V  [libjvm.so+0x241601];;  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x641
V  [libjvm.so+0x1dfcce];;  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x8e
V  [libjvm.so+0x249678];;  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x298
V  [libjvm.so+0x249016];;  CompileBroker::compiler_thread_loop()+0x306
V  [libjvm.so+0x5ccae9];;  compiler_thread_entry(JavaThread*, Thread*)+0x9
V  [libjvm.so+0x5c69f1];;  JavaThread::run()+0x111
V  [libjvm.so+0x4eb57a];;  java_start(Thread*)+0x14a


Current CompileTask:
C2:513  !   ognl.OgnlRuntime.getHandler(Ljava/lang/Class;Lognl/OgnlRuntime$ClassCache;)Ljava/lang/Object; (186 bytes)

Comments
EVALUATION This appears to be the same as 6772368.
21-03-2009