United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8009460 C2compiler crash in machnode::in_regmask(unsigned int)
JDK-8009460 : C2compiler crash in machnode::in_regmask(unsigned int)

Details
Type:
Bug
Submit Date:
2013-03-05
Status:
Closed
Updated Date:
2014-01-14
Project Name:
JDK
Resolved Date:
2013-03-12
Component:
hotspot
OS:
Sub-Component:
compiler
CPU:
Priority:
P2
Resolution:
Fixed
Affected Versions:
7u10
Fixed Versions:

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

Sub Tasks

Description
 
SHORT SUMMARY:

HotSpot VM crashed during register allocation phase on C2 compiler thread 
when compiling some kind of java methods.

INDICATORS:

The stack trace from hs_err log indicated the crash occurred during register 
allocation.

 Stack: [0x00007f0d2638c000,0x00007f0d2648d000],  sp=0x00007f0d26488980,  
free space=1010k
 Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
code)
 V  [libjvm.so+0x6995cd]  MachNode::in_RegMask(unsigned int) const+0x3d
 V  [libjvm.so+0x345325]  PhaseChaitin::gather_lrg_masks(bool)+0x425
 V  [libjvm.so+0x347b9f]  PhaseChaitin::Register_Allocate()+0x26f
 V  [libjvm.so+0x3ba24d]  Compile::Code_Gen()+0x3ad
 V  [libjvm.so+0x3bce55]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, 
int, bool, bool)+0xe15
 V  [libjvm.so+0x32eb62]  C2Compiler::compile_method(ciEnv*, ciMethod*, 
int)+0x142
 V  [libjvm.so+0x3c1d73]  
CompileBroker::invoke_compiler_on_method(CompileTask*)+0x323
 V  [libjvm.so+0x3c2edd]  CompileBroker::compiler_thread_loop()+0x43d
 V  [libjvm.so+0x8650c8]  JavaThread::thread_main_inner()+0xc8
 V  [libjvm.so+0x865218]  JavaThread::run()+0x138
 V  [libjvm.so+0x746c00]  java_start(Thread*)+0x100

COUNTER INDICATORS:

None

TRIGGERS:

The crash always occurs when HotSpot VM compiles some kind of java methods.

KNOWN WORKAROUND:

Give -XX:CompileCommand=exclude,<class,method> option for each java method 
causing a crash.

PRESENT SINCE:

7u6

HOW TO VERIFY:

No in-house reproducer. Need to be verified by the customer.

NOTES FOR SE:

None

REGRESSION:

No
 

                                    

Comments
In PhaseMacroExpand::expand_allocate_common():
- The Allocate -> MemBarStoreStore link is not broken if the graph has been transformed and the pattern matching that AllocateNode::storestore() uses cannot locate the MemBarStoreStore from the Allocate node.
- fast_oop_rawmem is added as a precedence edge in one of the cases where a new MemBarStoreStore is created but it's not needed
                                     
2013-03-05
URL:   http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/8651f608fea4
User:  amurillo
Date:  2013-03-12 23:20:11 +0000

                                     
2013-03-12



Hardware and Software, Engineered to Work Together