JDK-6766316 : assert(!nocreate,"Cannot build a phi for a block already parsed.")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs14
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2008-10-31
  • 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
6u14Fixed 7Fixed hs14Fixed
Description
The regression was introduced with the next push:

6384206: Phis which are later unneeded are impairing our ability to inline based on static types

hsdev-13% unzip -q /net/prt-archiver/data/jprt/archive/2008/09/2008-09-17-200034.never.6384206/bundles/solaris_i586_5.10-debug.zip

hsdev-13% bin/java -server -Xss4m -Xverify:all -XX:-ShowMessageBoxOnError -XX:+CompileTheWorld -XX:CompileTheWorldStartAt=1 -Xbootclasspath/p:/net/vmsqe.sfbay/export/backup/testbase/CompileTheWorld/jarfiles/Dynamo4.1.0.jar
...
CompileTheWorld (809) : atg/server/http/HttpRequestServerBeanInfo
CompileTheWorld (810) : atg/server/tcp/RequestServerHandler
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/parse1.cpp:1804
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt-jprtadm/P2/B/200034.never/source/src/share/vm/opto/parse1.cpp:1804), pid=20910, tid=21
#  Error: assert(!nocreate,"Cannot build a phi for a block already parsed.")
#
# Java VM: OpenJDK Server VM (14.0-b04-2008-09-17-200034.never.6384206-jvmg mixed mode solaris-x86 )
# An error report file with more information is saved as:
# /export/kvn/ctw/hs_err_pid20910.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 21
Dumping core ...
Abort
hsdev-13% hs_err hs_err_pid20910.log
# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
#  Internal Error (/tmp/jprt-jprtadm/P2/B/200034.never/source/src/share/vm/opto/parse1.cpp:1804), pid=20910, tid=21 
#  Error: assert(!nocreate,"Cannot build a phi for a block already parsed.") 
# 
# Java VM: OpenJDK Server VM (14.0-b04-2008-09-17-200034.never.6384206-jvmg mixed 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 (0x08260c00):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=21, stack(0xb5816000,0xb5856000)] 
 
Stack: [0xb5816000,0xb5856000],  sp=0xb58542f8,  free space=248k 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V  [libjvm.so+0x97e086] void VMError::report(outputStream*) + 0x906
V  [libjvm.so+0x97f093] void VMError::report_and_die() + 0x653
V  [libjvm.so+0x4944a9] void report_assertion_failure(const char*,int,const char*) + 0x79
V  [libjvm.so+0x80d365] PhiNode*Parse::ensure_phi(int,bool) + 0x145
V  [libjvm.so+0x80c67b] void Parse::merge_common(Parse::Block*,int) + 0x79b
V  [libjvm.so+0x80bc58] void Parse::merge(int) + 0xa8
V  [libjvm.so+0x813f24] void Parse::do_jsr() + 0x184
V  [libjvm.so+0x819a27] void Parse::do_one_bytecode() + 0x3fa7
V  [libjvm.so+0x80b9ff] void Parse::do_one_block() + 0x53f
V  [libjvm.so+0x80835c] void Parse::do_all_blocks() + 0x28c
V  [libjvm.so+0x807ff9] Parse::Parse(JVMState*,ciMethod*,float) + 0xdd9
V  [libjvm.so+0x388114] JVMState*ParseGenerator::generate(JVMState*) + 0xc4
V  [libjvm.so+0x441cca] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool) + 0xa2a
V  [libjvm.so+0x387139] void C2Compiler::compile_method(ciEnv*,ciMethod*,int) + 0xa9
V  [libjvm.so+0x451786] void CompileBroker::invoke_compiler_on_method(CompileTask*) + 0x4b6
V  [libjvm.so+0x450e0f] void CompileBroker::compiler_thread_loop() + 0x42f
V  [libjvm.so+0x9235e2] void compiler_thread_entry(JavaThread*,Thread*) + 0x62
V  [libjvm.so+0x91edbf] void JavaThread::thread_main_inner() + 0xdf
V  [libjvm.so+0x91ecd1] void JavaThread::run() + 0x1d1
V  [libjvm.so+0x7db5e6] java_start + 0x1f6
C  [libc.so.1+0xaa1c0]  _thrp_setup+0x70 _thrp_setup + 0x70
C  [libc.so.1+0xaa420]  _lwp_start+0x0 _lwp_start + 0x0
 
 
Current CompileTask: 
C2:4786  !b  atg.server.tcp.RequestServerHandler.run()V (316 bytes)

Comments
SUGGESTED FIX Don't use the invariant local information if there are irreducible loops.
19-11-2008

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/b1d6a3e95810
19-11-2008