The process crashes with the following stack trace: Stack: [0xffffffff77500000,0xffffffff77600000], sp=0xffffffff775f9da0, free space=999k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x551708] void ConnectionGraph::record_for_escape_analysis(Node*,PhaseTransform*)+0xfb8 V [libjvm.so+0x54e89c] bool ConnectionGraph::compute_escape()+0x22c V [libjvm.so+0x54e610] void ConnectionGraph::do_analysis(Compile*,PhaseIterGVN*)+0xb0 V [libjvm.so+0x246160] void Compile::Optimize()+0x130 V [libjvm.so+0x4c6da4] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool)+0xd94 V [libjvm.so+0x241360] void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0xa8 V [libjvm.so+0x2420dc] void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x89c V [libjvm.so+0x2b61fc] void CompileBroker::compiler_thread_loop()+0x844 V [libjvm.so+0x957c0c] void JavaThread::thread_main_inner()+0x3c V [libjvm.so+0x866364] java_start+0x164 The crash happens in this part of the code when the adr_type returned by make_ptr is accessed. The adr_type returned by make_ptr is NULL and that causes the crash. case Op_CompareAndSwapN: 2485 { 2486 const Type *adr_type = phase->type(n->in(MemNode::Address)); 2487 adr_type = adr_type->make_ptr(); 2488 if (adr_type->isa_oopptr()) { 2489 add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); 2490 } else { 2491 _processed.set(n->_idx); 2492 return; 2493 } 2494 break;
|