JDK-6663621 : JVM crashes while trying to execute api/java_security/Signature/SignatureTests.html#initSign tests.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs11
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris
  • CPU: sparc
  • Submitted: 2008-02-15
  • Updated: 2011-03-07
  • Resolved: 2011-03-07
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
6u10Fixed hs11Fixed
Related Reports
Relates :  
Description
JCK            : JCK-runtime-6a b14
J2SE           : FAIL - jdk6u10 build 11, 46u4p, 6u5p with core dump . Depends on JVM version: should be 11 b09
Platform[s]    : FAIL - solaris10 sparc
switch/Mode    : FAIL - -d64 -Xcomp. Passes w/o any of these options



JVM crashes while trying to execute JCK api/java_security/Signature/SignatureTests.html#initSign tests.
VM version: HotSpot 11.0-b09 
VM options: -d64 -Xcomp 
OS: Solaris 10
JDK: 6u10 b11 (also 6u4 and 6u5 performance releases)

Steps to reproduce:
1) Login to Solaris mashine. For example stt-32.russia.sun.com
2) Install JDK 6u10 b11 and JCK6a. If you are logged to to stt-32 then JDK and JCK6a is already installed, just cd to /set/stt/newroot/results/1.6.0_05p/b00/JCK6a/runtime-Sol10-sun4v-d64-server-Xcomp/failed 
3) run script rerun.sh (It executes tests mentioned above)
Content of the script goes below
#!/bin/bash
export CLASSPATH="/set/stt/jck_promotions/6a/fcs/alt2/binaries/JCK-runtime-6a/classes"
OPTS="-d64 -server -Xcomp"
TEST=javasoft.sqe.tests.api.java.security.Signature.initSignTests
SECPOLICY="/set/stt/jck_promotions/6a/fcs/alt2/binaries/JCK-runtime-6a/lib/jck.policy"
export JAVA=/export/JDK/jdk1.6.0_10/bin/java
$JAVA $OPTS -classpath $CLASSPATH -Djava.security.policy=$SECPOLICY $TEST -TestCaseID ALL

Please, see comments for the output of tests before crash and for the vm crash log.

Comments
EVALUATION From ###@###.###: Superword uses the pre loop to align the index variable so that it can use memory operations of larger alignment than the original. The expression doesn't work correctly when the primary induction variable strides in a different direction than the secondary induction used in the memory access. This is actually broken on all platforms but sparc 64-bit was the only one which faulted on the access. The other platforms were silently fixing up the memory operation resulting in reduced performance. For some examples it was 30x slower after vectorization because of this. The fix is to derive and emit the correct limit expression for these cases. They are simply slight variations on the existing expressions, differing only in the sign of an operation.
13-05-2008

SUGGESTED FIX repo: /net/jano2.sfbay/export2/hotspot/hg/hotspot-comp.clean changeset: 55:f705f25597eb user: never date: Thu Mar 20 10:43:42 2008 -0700 description: 6663621: JVM crashes while trying to execute api/java_security/Signature/SignatureTests.html#initSign tests. Summary: alignment expression with secondary induction variables is sometimes wrong Reviewed-by: kvn, rasbold files: src/share/vm/opto/superword.cpp test/compiler/6663621/IVTest.java http://javaweb.sfbay/jdk/jprt/archive/2008/03/2008-03-20-174657.never.hs12
21-03-2008

EVALUATION Will turn off superword transformations for 64 bit, and fix the root cause under another bug.
11-03-2008

EVALUATION Appears to have been introduced with the changes for 6589176. Those changes should have only had an effect on x64 platforms, but this bug is eveidence to the contrary. More investigation needed to determine potential remedies.
27-02-2008