JDK-6966411 : escape.cpp:450 assert(base->Opcode() == Op_ConP
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs19
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2010-07-02
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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
6u21pFixed 7Fixed hs19Fixed
Related Reports
Relates :  
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 http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/60a14ad85270
16-07-2010

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.
06-07-2010

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

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
02-07-2010