JDK-6875577 : CTW fails with /hotspot/src/share/vm/opto/memnode.cpp:1794
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs16
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2009-08-25
  • 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
6u21Fixed 7Fixed hs17Fixed
Related Reports
Relates :  
Note: issue is C2 specific.

It reproduced on linux,solaris, i586, amd64, sparc. I did not check windows.

Looks like the compiler fails for class which contains an array net.jini.core.lookup.ServiceID refs however this type is not in classpath. If so then such issue unlikely to be reproduced in real VM. Probably CTW tests should be improved.

To reproduce (with jdk6u18) run:
/net/vmsqe.russia/export/jdk/re/6u18/promoted/ea/b01/binaries/solaris-i586/fastdebug/bin/java  -XX:-ShowMessageBoxOnError     -Xverify:all  -XX:+CompileTheWorld -Xbootclasspath/p:/net/vmsqe.russia/export/testbase/ctw/build/../jars/ibiblio/maven2/jini/jini-ext/2.1/jini-ext-2.1.jar

CompileTheWorld (200) : netscape/plugin/composer/PluginKiller
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/memnode.cpp:1794
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/export0/BUILD_AREA/jdk6_18/hotspot/src/share/vm/opto/memnode.cpp:1794), pid=18837, tid=10
#  Error: assert(ak->is_loaded(),"")
# JRE version: 6.0_18-b01
# Java VM: Java HotSpot(TM) Server VM (16.0-b08-fastdebug mixed mode solaris-x86 )
# An error report file with more information is saved as:
# /tmp/hs_err_pid4902.log
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
Current thread is 9
Dumping core ...

PUBLIC COMMENTS Problem: do_null_check checks for unloaded klass only for instances. In the test case C2 tries to generate Object.clone() intrinsic for array with unloaded element's klass. Solution: Fix do_null_check to check for unloaded klass for all oop pointers. Add check for stopped() state into PreserveReexecuteState destructor and assert into its contructor. Add assert to check that allocation's CheckCastPP node used in arraycopy has more precise type then Object. Otherwise it will fold with new CheckCastPP node and incorrect graph will be generated.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8fe1963e3964