JDK-4827458 : Intermittent assertion failure running appserver 7 with mantis-beta on solsparc
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.2,1.4.2_03
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris_9
  • CPU: generic,sparc
  • Submitted: 2003-03-05
  • Updated: 2004-04-30
  • Resolved: 2003-06-05
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.
Other
1.4.2_05 05Fixed
Related Reports
Relates :  
Description
Noticed this crash few instances, but is not reproducible.

Here are the  flags used:
-server
-XX:CompileThreshold=100
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled

Java  -version
java version "1.4.2-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b17)
Java HotSpot(TM) Server VM (build 20030228200906.jmasa.baseline-fastdebug-debug, mixed mode)

How to Reproduce: (Thanks to coleen for providing this scenario)
cd /net/jano.sfbay/export/disk20/GammaBase/Bugs/4827458
ksh doit.ksh
Log
-----------------------------------
[04/Mar/2003:00:26:50] FINE ( 7886): jvm option: -Djava.class.path=/opt/SUNWappserver7/lib/appserv-rt.jar:/export/AppServe
r7/UseJDK/lib/tools.jar:/opt/SUNWappserver7/lib/appserv-ext.jar:/opt/SUNWappserver7/lib/appserv-cmp.jar:/usr/share/lib/mai
l.jar:/opt/SUNWappserver7/lib/appserv-ideplugin.jar:/usr/share/lib/imq/imq.jar:/usr/share/lib/imq/jaxm-api.jar:/usr/share/
lib/imq/imqadmin.jar:/usr/share/lib/imq/imqutil.jar:/opt/SUNWappserver7/lib/appserv-admin.jar:/usr/share/lib/jaxrpc-impl.j
ar:/usr/share/lib/jaxrpc-api.jar:/usr/share/lib/jaxr-impl.jar:/usr/share/lib/jaxr-api.jar:/usr/share/lib/activation.jar:/u
sr/share/lib/saaj-api.jar:/usr/share/lib/saaj-impl.jar:/usr/share/lib/commons-logging.jar:/usr/share/lib/imq/fscontext.jar
:/usr/share/lib/imq/providerutil.jar:/opt/SUNWappserver7/lib/appserv-jstl.jar:/opt/SUNWappserver7/lib/classes12.zip:/opt/S
UNWappserver7/pointbase/client_tools/lib/pbclient42RE.jar:
[04/Mar/2003:00:26:50] WARNING ( 7886): CORE3283: stderr: VM option 'CompileThreshold=100'
[04/Mar/2003:00:26:50] WARNING ( 7886): CORE3283: stderr: VM option '+UseConcMarkSweepGC'
[04/Mar/2003:00:26:50] WARNING ( 7886): CORE3283: stderr: VM option '+CMSClassUnloadingEnabled'
[04/Mar/2003:00:26:50] WARNING ( 7886): CORE3283: stderr: VM option '+CMSPermGenSweepingEnabled'
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # To suppress the following error report, specify this argument
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # after -XX: or in .hotspotrc:  SuppressErrorAt=/parse1.cpp:876
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # HotSpot Virtual Machine Error, assertion failure
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # Please report this error at
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # http://java.sun.com/cgi-bin/bugreport.cgi
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # Java VM: Java HotSpot(TM) Server VM (20030228200906.jmasa.base
line-fastdebug-debug mixed mode)
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empt
y(), "return value must be well defined")
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # Error ID: /net/balvenie.sfbay/export/imgr_home/ws/200302282009
06.jmasa.baseline/src/share/vm/opto/parse1.cpp, 876 [ Patched ]
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: # Problematic Thread: prio=5 tid=0x003a6060 nid=0x22 runnable
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: #
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: Heap at VM Abort:
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr: Heap
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr:  par new generation   total 4032K, used 499K [0xef000000, 0xef40
0000, 0xef400000)
[04/Mar/2003:00:26:56] WARNING ( 7886): CORE3283: stderr:   eden space 3968K,  12% used [0xef000000, 0xef07cd88, 0xef3e000
0)
[04/Mar/2003:00:27:02] FINE ( 7885): CORE3061: signal_handler_thread: received signal 18
[04/Mar/2003:00:27:02] FINE ( 7885): CORE3049: Primordial process detected child 7886 died: status 134
[04/Mar/2003:00:27:02] FINE ( 7885): CORE3071: Child died before completing init
[04/Mar/2003:00:27:02] FINE ( 7885): CORE3062: Unlinking of /tmp/server1-4f378e6f/.cgistub_7886 returned -1
[04/Mar/2003:00:27:02] FINE ( 7885): CORE3135: Unlinking /tmp/server1-4f378e6f/iwsadmin.7885

-----------------------------------

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.2_05 generic tiger FIXED IN: 1.4.2_05 tiger INTEGRATED IN: 1.4.2_05 tiger tiger-b08 VERIFIED IN: 1.4.2_05
2004-06-14

EVALUATION ###@###.### 2003-03-11 assertion failure: # assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty(), "return value must be well defined") # # Error ID: /net/balvenie.sfbay/export/imgr_home/ws/20030228200906.jmasa.baseline/src/share/vm/opto/parse1.cpp, 876 [ Patched ] ----- ----- ###@###.### 2003-03-27 Reproduces intermittently with mantis build and scripts in GammaBase/Bugs/4827458 ----- ###@###.### 2003-05-05 I took a look at this bug hoping that it was related to 4838812, which does not seem reproducible at present. See Comments and Suggested Fix. ----- ###@###.### 2003-05-09 Confirmed that suggested fix does preserve the unloaded status of the klass. -----
2003-05-09

SUGGESTED FIX See the attached file, suggested-fix.sh. It applies a patch which fixes a hole in the checking for previously-unloaded classes, in ciEnv.cpp. The problem appears to be that references to types via field signatures do not check correctly for previously unloaded classes (check_get_unloaded_klass), because they probe the set of unloaded classes using the name variant "Lclassname;" rather than the unadorned classname. The other changes in the patch were useful for diagnosing this bug. The change in ciObjectFactory.cpp is an assertion that checks for the supposedly-impossible case of a class appearing loaded but then becoming unloaded. The other two changes cause the VM to hang on exit as long as both of the following two conditions are true: ShowMessageBoxOnError is true (defaults to false) is_error_reported() is true (only true after assertion or fatal) ###@###.### 2003-05-05
2003-05-05