United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6966411 escape.cpp:450 assert(base->Opcode() == Op_ConP
JDK-6966411 : escape.cpp:450 assert(base->Opcode() == Op_ConP

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

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

Sub Tasks

Description
Nightly tests failed on all platforms:

nsk/stress/jck60/jck60014
nsk/stress/jck122/jck122012

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/B/231138.jrose/source/src/share/vm/opto/escape.cpp:450), pid=16596, tid=12
#  assert(base->Opcode() == Op_ConP || base->Opcode() == Op_ThreadLocal || base->Opcode() == Op_CastX2P || base->is_DecodeN() || (base->is_Mem() && base->bottom_type() == TypeRawPtr::NOTNULL) || (base->is_Proj() && base->in(0)->is_Allocate())) failed: sanity
#
# JRE version: 7.0-b99
# Java VM: Java HotSpot(TM) Server VM (19.0-b02-201006292311.jrose.main_to_comp-fastdebug compiled mode solaris-x86 )
# 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 (0x081c9400):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=12, stack(0xb49dc000,0xb4a5c000)]

Stack: [0xb49dc000,0xb4a5c000],  sp=0xb4a5a420,  free space=1f9b4a5c000k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1cdae3f];;  __1cHVMErrorGreport6MpnMoutputStream__v_+0x70b
V  [libjvm.so+0x1cdbfc6];;  __1cHVMErrorOreport_and_die6M_v_+0x582
V  [libjvm.so+0xab4dd1];;  __1cPreport_vm_error6Fpkci11_v_+0x5ad
V  [libjvm.so+0xb99fe2];;  __1cNget_addp_base6FpnENode__1_+0x586
V  [libjvm.so+0xba37be];;  __1cPConnectionGraphOcompute_escape6M_b_+0x55e
V  [libjvm.so+0x98cb7b];;  __1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod_ibb_v_+0x157f
V  [libjvm.so+0x78dce9];;  __1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_+0x11d
V  [libjvm.so+0x9a9f73];;  __1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_+0x1197
V  [libjvm.so+0x9a8092];;  __1cNCompileBrokerUcompiler_thread_loop6F_v_+0xcfe
V  [libjvm.so+0x1bdb7f1];;  __1cVcompiler_thread_entry6FpnKJavaThread_pnGThread__v_+0x2d
V  [libjvm.so+0x1bce78e];;  __1cKJavaThreadRthread_main_inner6M_v_+0x1a2
V  [libjvm.so+0x1bce3d8];;  __1cKJavaThreadDrun6M_v_+0x618
V  [libjvm.so+0x17db438];;  java_start+0x708
C  [libc.so.1+0xa7045];;  _thr_setup+0x4e
C  [libc.so.1+0xa7330];;  _lwp_start+0x0


Current CompileTask:
C2:7582  !b  javasoft.sqe.tests.api.java.lang.StringBuffer.CtorTests.StringBuffer0002()Ljavasoft/sqe/javatest/Status; (24 bytes)

jvm_args: -Xcomp -XX:-PrintVMOptions -XX:CompileThreshold=100 -XX:+AggressiveOpts -Xverify:all 
java_command: nsk.stress.share.StressTestRunner -testList /export/local/common/testbase/6/vm/vm/src/nsk/stress/jck60//jck60014/tests -stress:indulgent

                                    

Comments
EVALUATION

OptimizeStringConcat optimization replaces calls with inlined methods during do_late_inline(). It creates dead paths which are not eliminated before EscapeAnalysis since IGVN optimization is not executed:

Before do_late_inline():

 47     CallStaticJava  ===  41  38  26  8  1 ( 44  22  1  1  1  44 ) [[ 48  49  50  52  59  60 ]] # Static  java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) CtorTests::StringBuilder0002 @ bci:7 !jvms: CtorTests::StringBuilder0002 @ bci:7
 53     Catch   ===  48  49  [[ 54  55 ]]  !jvms: CtorTests::StringBuilder0002 @ bci:7
 49     Proj    ===  47  [[ 58  53  57 ]] #1 (i_o_use) !jvms: CtorTests::StringBuilder0002 @ bci:7
 55     CatchProj       ===  53  [[ 57  58 ]] #1@bci -1  !jvms: CtorTests::StringBuilder0002 @ bci:7
 62     ConL    ===  0  [[ 63 ]]  #long:8
 58     CreateEx        ===  55  49  [[ 63  63 ]]  #java/lang/Throwable:NotNull *  Oop:java/lang/Throwable:NotNull * !jvms: CtorTests::StringBuilder0002 @ bci:7
 63     AddP    === _  58  58  62  [[ 64 ]]   Oop:java/lang/Throwable:NotNull+8 * [narrow] !jvms: CtorTests::StringBuilder0002 @ bci:7

After do_late_inline():

 62     ConL    ===  0  [[ 63  92 ]]  #long:8
 63     AddP    === _  1  1  62  [[ 64 ]]  !jvms: CtorTests::StringBuilder0002 @ bci:7
                                     
2010-07-02
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/60a14ad85270
                                     
2010-07-03
PUBLIC COMMENTS

OptimizeStringConcat optimization replaces calls with inlined
methods during do_late_inline(). It creates dead paths which
are not eliminated before Escape Analysis since IGVN optimization
is not executed:

62     ConL    ===  0  [[ 63  92 ]]  #long:8
63     AddP    === _  1  1  62  [[ 64 ]]  !jvms: CtorTests::StringBuilder0002 @ bci:7

Solution:
Execute IGVN optimization before and after Escape Analysis.
Use new PhaseIterGVN field ConnectionGraph::_igvn instead of
passing phase as EA methods parameter.
                                     
2010-07-06
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/60a14ad85270
                                     
2010-07-16



Hardware and Software, Engineered to Work Together