United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6924097 assert((_type == Type::MEMORY) == (_adr_type != 0),"adr_type for memory phis only")
JDK-6924097 : assert((_type == Type::MEMORY) == (_adr_type != 0),"adr_type for memory phis only")

Details
Type:
Bug
Submit Date:
2010-02-07
Status:
Resolved
Updated Date:
2010-04-03
Project Name:
JDK
Resolved Date:
2010-03-02
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs17 (b10)

Related Reports
Backport:
Backport:

Sub Tasks

Description
Found during testing with tiered compilation:

bin/java -server -Xmx384M -XX:+PrintGC -XX:+TieredCompilation -XX:+StressTieredRuntime -cp jbb.jar:jbb_no_precompile.jar:check.jar:reporter.jar spec.jbb.JBBmain

SPECjbb2000

Input Properties:
  ramp_up_seconds = 30
  measurement_seconds = 120
  forcegc = true
  starting_number_warehouses = 1
  increment_number_warehouses = 1
  ending_number_warehouses = 3

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
#  Internal Error (/tmp/jprt/P1/B/040039.kvn/source/src/share/vm/opto/cfgnode.cpp:807), pid=18136, tid=12 
#  Error: assert((_type == Type::MEMORY) == (_adr_type != 0),"adr_type for memory phis only") 
# 
# JRE version: 7.0-b82 
# Java VM: OpenJDK Server VM (17.0-b07-2010-02-06-040039.kvn.6923002-fastdebug mixed mode solaris-sparc ) 
# 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 (0x001c1000):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=12, stack(0xdd980000,0xdda00000)] 
 
Stack: [0xdd980000,0xdda00000],  sp=0xdd9fc990,  free space=1f2fef2e384k 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V  [libjvm.so+0x135022c] void VMError::report_and_die() + 0x718
V  [libjvm.so+0x6f21b0] void report_assertion_failure(const char*,int,const char*) + 0x70
V  [libjvm.so+0x4a29dc] void PhiNode::verify_adr_type(bool)const + 0xa0
V  [libjvm.so+0xe15ee4] Node*PhaseIdealLoop::split_thru_phi(Node*,Node*,int) + 0x464
V  [libjvm.so+0xe1af64] Node*PhaseIdealLoop::split_if_with_blocks_pre(Node*) + 0x560
V  [libjvm.so+0xe1cbdc] void PhaseIdealLoop::split_if_with_blocks(VectorSet&,Node_Stack&) + 0x14c
V  [libjvm.so+0xe0a43c] void PhaseIdealLoop::build_and_optimize(bool,bool) + 0x1654
V  [libjvm.so+0x63697c] void Compile::Optimize() + 0x1320
V  [libjvm.so+0x62ffb0] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool) + 0x1ec4
V  [libjvm.so+0x474f4c] void C2Compiler::compile_method(ciEnv*,ciMethod*,int) + 0xc0
V  [libjvm.so+0x64bf60] void CompileBroker::invoke_compiler_on_method(CompileTask*) + 0x1be4
V  [libjvm.so+0x649760] void CompileBroker::compiler_thread_loop() + 0x1614
V  [libjvm.so+0x1245940] void JavaThread::thread_main_inner() + 0x228
V  [libjvm.so+0x1245700] void JavaThread::run() + 0x534
V  [libjvm.so+0xfcb8f0] java_start + 0x1ac
 
 
Current CompileTask: 
C2:526  !   sun.nio.cs.ISO_8859_1$Encoder.encodeArrayLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; (356 bytes)

                                    

Comments
EVALUATION

PhaseIdealLoop::split_thru_phi() does not set adr_type when creates new memory Phi node.
                                     
2010-02-07
EVALUATION

ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/4ee1c645110e,ChangeRequest=6924097
                                     
2010-02-09
PUBLIC COMMENTS

PhaseIdealLoop::split_thru_phi() does not set adr_type when creates new
  memory Phi node.

Solution:
Use PhiNode::make_blank(r, n) method to construct the phi.
                                     
2010-02-09



Hardware and Software, Engineered to Work Together