JDK-6924097 : assert((_type == Type::MEMORY) == (_adr_type != 0),"adr_type for memory phis only")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs17
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2010-02-07
  • Updated: 2010-04-03
  • Resolved: 2010-03-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u21Fixed 7Fixed hs17Fixed
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
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.
09-02-2010

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

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