United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6623167 C2 crashed in StoreCMNode::Value
JDK-6623167 : C2 crashed in StoreCMNode::Value

Details
Type:
Bug
Submit Date:
2007-10-29
Status:
Closed
Updated Date:
2011-04-20
Project Name:
JDK
Resolved Date:
2011-04-20
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u2
Fixed Versions:
hs10 (b22)

Related Reports
Backport:
Backport:
Backport:
Backport:
Backport:
Backport:
Backport:

Sub Tasks

Description
When run customer application for debugging bug 6611406, the app crashed in C2 compiler:

  [1] __lwp_kill(0x13, 0x6, 0xffffffffb2c9fbc0, 0xfffffd7fff2f4c1e, 0x0, 0x6), at 0xfffffd7fff2f42ea
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2ef2d3
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff29ce19
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff27c970
  [5] os::abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffee7ba74
  [6] VMError::report_and_die(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffef87375
  [7] JVM_handle_solaris_signal(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe915803
  [8] signalHandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe915a8e
  [9] __sighndlr(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2f1216
  [10] call_user_handler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2e64a2
  [11] sigacthandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2e6688
  ---- called from signal handler with signal 11 (SIGSEGV) ------
=>[12] StoreCMNode::Value(0x7e70d0, 0xfffffd7fe9b70008, 0x1, 0x1, 0x0, 0x1f797e0), at 0xfffffd7ffee569d0
  [13] PhaseIterGVN::transform_old(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe8a0cc3
  [14] PhaseIterGVN::optimize(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe95f0d7
  [15] Compile::Optimize(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe9b4d85
  [16] Compile::Compile(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffebc442c
  [17] C2Compiler::compile_method(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe9b267d
  [18] CompileBroker::invoke_compiler_on_method(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffe9b220d
  [19] CompileBroker::compiler_thread_loop(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffea63fa8
  [20] compiler_thread_entry(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffea5eb49
  [21] JavaThread::thread_main_inner(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffea04e0d
  [22] JavaThread::run(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffea0472e
  [23] java_start(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffee7b01c
  [24] _thr_setup(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2f0edb
  [25] _lwp_start(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2f1110

                                    

Comments
EVALUATION

VM crashed since in(MemNode::OopStore) is 0.
The node, it seems, is dead since it's inputs are

control(0),mem(top),adr(0),val(0),oopst(0)

If I am correct then the problem is that StoreCMNode::Value()
miss first inputs checks which we have, for example, in StoreCMNode::Value() :

const Type *StoreNode::Value( PhaseTransform *phase ) const {
  // Either input is TOP ==> the result is TOP
  const Type *t1 = phase->type( in(MemNode::Memory) );
  if( t1 == Type::TOP ) return Type::TOP;
  const Type *t2 = phase->type( in(MemNode::Address) );
  if( t2 == Type::TOP ) return Type::TOP;
  const Type *t3 = phase->type( in(MemNode::ValueIn) );
  if( t3 == Type::TOP ) return Type::TOP;
                                     
2007-10-29



Hardware and Software, Engineered to Work Together