JDK-6598190 : JPRT tests fail when run with -XX:+CheckUnhandledOops
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2007-08-28
  • 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 Other
6u14Fixed hs12Fixed
Related Reports
Relates :  
Description
A number of JPRT tests fail when the VM is submitted with the -XX:+CheckUnhandledOops flag for testing.

Submit command: 
jprt submit -n -tf -XX:+CheckUnhandledOops -noquickabort -ot '.*fastdebug.*'

Fails the following test targets:

  solaris_sparcv9-fastdebug-c2-jvm98 solaris_i586-fastdebug-c1-jvm98
  solaris_i586-fastdebug-c2-jvm98 solaris_i586-fastdebug-c1-scimark
  solaris_i586-fastdebug-c2-scimark solaris_x64-fastdebug-c2-jvm98
  solaris_sparcv9-fastdebug-c2-GCBasher_CMS_2
  solaris_i586-fastdebug-c1-runThese_Xcomp_2
  solaris_i586-fastdebug-c1-runThese_Xshare
  solaris_i586-fastdebug-c2-GCBasher_default
  solaris_i586-fastdebug-c2-GCBasher_SerialGC
  solaris_i586-fastdebug-c2-GCBasher_ParallelGC
  solaris_i586-fastdebug-c2-GCBasher_ParNewGC
  solaris_i586-fastdebug-c2-GCBasher_CMS
  solaris_i586-fastdebug-c2-jbb_default
  solaris_i586-fastdebug-c2-jbb_ParallelGC solaris_i586-fastdebug-c2-jbb_CMS
  solaris_i586-fastdebug-c1-scimark_2 solaris_i586-fastdebug-c2-scimark_2
  solaris_i586-fastdebug-c1-scimark_3 solaris_i586-fastdebug-c2-scimark_3

There are a couple of SIGSEGVs and SIGBUSs, but most of the failures are an assertion:

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/frame_i486.inline.hpp:46
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/temp/P1/B/181240.km88527/source/src/cpu/i486/vm/frame_i486.inline.hpp:46),
  pid=7078, tid=2
#  Error: assert(pc != 0,"no pc?")
#
# Java VM: Java HotSpot(TM) Client VM
  (1.7.0-2007-08-27-181240.km88527.6584839-jprtadm-fastdebug mixed mode
  solaris-x86)
# An error report file with more information is saved as:
# /scratch/jprt/products/P1/scimark/hs_err_pid7078.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
VM option '+CheckUnhandledOops'
Current thread is 2
Dumping core ...
Abort - core dumped

Comments
EVALUATION It is caused by Sun Studio 11 C++ compiler bug 6629277 "destructor call for temporary object in switch statement missing in some cases in Studio11". Bad code is generated for DepChange::ContextStream::next() in dependencies.cpp. A simple workaround is to enclose the offending switch statement clause in curly brackets.
31-01-2008