-
Bug
-
Resolution: Fixed
-
P4
-
2.0, 1.4.0, 1.4.2, 5.0
-
tiger
-
generic, x86
-
generic, linux, solaris_8, windows_nt
-
Verified
Name: abR10010 Date: 11/13/2001
Test : nsk/regression/b4459438
TestBase : testbase_nsk
The nsk/regression/b4459438 shows that integrity of static volatile long variable
is corrupted on Solx86 on dual-CPU machine under the HotSpot VM (build 1.4.0-rc-b85).
This failure happens starting with HotSpot VM build 1.4.0-beta3-b81.
On one-CPU machine the test passes as well as it passes on dual-CPU machine
in -Xcomp mode.
See test log:
% .../java/dest/jdk1.4.0beta-b85/solx86/bin/java b4459438
==> nsk/regression/b4459438 test LOG:
--> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter
Synopsis: Accesses to volatile longs don't work in the 64-bit vm
##> Thread number 4: volatile long variable integrity was corrupted:
##> full double word = 400000005 (hex)
##> left half-word = 4 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 19529
##> Thread number 6: volatile long variable integrity was corrupted:
##> full double word = 600000005 (hex)
##> left half-word = 6 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 3171
##> Thread number 8: volatile long variable integrity was corrupted:
##> full double word = 800000005 (hex)
##> left half-word = 8 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 183
##> Thread number 2: volatile long variable integrity was corrupted:
##> full double word = 200000005 (hex)
##> left half-word = 2 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 217
##> Thread number 3: volatile long variable integrity was corrupted:
##> full double word = 300000005 (hex)
##> left half-word = 3 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 33809
##> Thread number 1: volatile long variable integrity was corrupted:
##> full double word = 100000005 (hex)
##> left half-word = 1 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 2937
##> Thread number 5: volatile long variable integrity was corrupted:
##> full double word = 500000007 (hex)
##> left half-word = 5 (hex)
##> right half-word = 7 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 27581
##> Thread number 9: volatile long variable integrity was corrupted:
##> full double word = 900000007 (hex)
##> left half-word = 9 (hex)
##> right half-word = 7 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 1
==> nsk/regression/b4459438 test FAILED
The nsk/regression/b4459438 test source:
===============================================================================
// File: @(#)b4459438.java 1.1 01/11/02
// Copyright 11/02/01 Sun Microsystems, Inc. All Rights Reserved
public class b4459438 extends Thread {
static final int STATUS_PASSED = 0;
static final int STATUS_FAILED = 2;
static final int STATUS_TEMP = 95;
static volatile int testResult = STATUS_PASSED;
static volatile java.io.PrintStream logOut;
static volatile long volatileLongToTest = 0;
static int count = 10000000;
int threadNumber;
long threadLongKey;
public b4459438(ThreadGroup threadGroup, String threadName, int threadNumber) {
super(threadGroup, threadName);
this.threadNumber = threadNumber;
long tmpLong = threadNumber;
threadLongKey = (tmpLong << 32) | tmpLong;
}
public void run() {
for(int i = 0; i < count; i++) {
long copyLong = volatileLongToTest;
long leftHalfWord = copyLong >>> 32;
long rightHalfWord = (copyLong << 32) >>> 32;
if (leftHalfWord != rightHalfWord) {
logOut.println("##> Thread number " + threadNumber + ": volatile long variable integrity was corrupted:");
logOut.println("##> full double word = " + Long.toHexString(copyLong) + " (hex)");
logOut.println("##> left half-word = " + Long.toHexString(leftHalfWord) + " (hex)");
logOut.println("##> right half-word = " + Long.toHexString(rightHalfWord) + " (hex)");
logOut.println("##> But left half-word and right half-word have to be equal!");
logOut.println("##> Loop iteration number = " + i);
testResult = STATUS_FAILED;;
return;
}
volatileLongToTest = threadLongKey;
}
}
public static int run(String argv[], java.io.PrintStream out) {
logOut = out;
logOut.println("==> nsk/regression/b4459438 test LOG:");
logOut.println("--> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter");
logOut.println(" Synopsis: Accesses to volatile longs don't work in the 64-bit vm\n");
ThreadGroup b4459438_ThreadGroup = new ThreadGroup("b4459438");
Object objForWait = new Object();
Thread[] threadList = new Thread[1];
int threads = 10;
for(int i = 1; i < threads; i++) {
(new b4459438(b4459438_ThreadGroup, ("" + i), i)).start();
}
while ( true ) {
if ( b4459438_ThreadGroup.enumerate(threadList) == 0 ) {
break;
}
synchronized(objForWait) {
try {
objForWait.wait(1000);
}
catch (Throwable thrown) {
logOut.println("##> Unexpected Exception was thrown by Main Thread:");
thrown.printStackTrace(logOut);
testResult = STATUS_FAILED;
break;
}
}
}
if ( testResult == STATUS_FAILED ) {
logOut.println("==> nsk/regression/b4459438 test FAILED");
}
else {
logOut.println("==> nsk/regression/b4459438 test PASSED");
}
return testResult;
}
public static void main(String argv[]) {
int testExitStatus = run(argv, System.out) + STATUS_TEMP;
System.exit(testExitStatus);
}
} // end of b4459438 class
Alexey Gibadullin, ###@###.###
This failure is intermittent and appeared in Merlin since build 81 against
both Server and Client VMs. The failure was observed on Solx86 and Linux in
default and -Xcomp modes. However, all failures were revealed just on
machines with two processors.
The test used to reveal that failure not in all runs and not against
all Merlin builds. However, it is reproduced regulary against Merlin-b89
- on Solx86 (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Solaris-8)
against Server VM in -Xcomp mode;
- on Linux (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Linux/RedHat6.2)
against Client VM in default mode.
See the bug
4459438 Accesses to volatile longs don't work in the 64-bit vm
that has already been integrated (in merlin-beta2).
Name: abR10010 Date: 04/14/2003
This failure happens again regulary witn Client VM (build 1.5.0-beta-b04,
compiled mode)
only on Solx86 (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Solaris-8).
On one-CPU mashine the test passes as well as it passes on dual-CPU machine
with build 1.5.0-beta-b03.
###@###.### 2003-04-15
======================================================================
The test nsk/regression/b4459438 fail with 1.4.2 JDK at dual CPU machine:
#
[2008-08-12T06:54:48.88] export CLASSPATH
[2008-08-12T06:54:48.88] export PERL
[2008-08-12T06:54:48.88] export PATH
[2008-08-12T06:54:48.88] export TESTLIST
[2008-08-12T06:54:48.88] export HOME
[2008-08-12T06:54:48.88] export DISPLAY
[2008-08-12T06:54:48.88] export LD_LIBRARY_PATH
[2008-08-12T06:54:48.88] TEST_DEST_DIR="b4459438"
[2008-08-12T06:55:08.54] # Actual: TEST_DEST_DIR=b4459438
[2008-08-12T06:55:08.54] TESTNAME="${test_case_name}"
[2008-08-12T06:55:08.54] # Actual: TESTNAME=b4459438
[2008-08-12T06:55:08.54] testName="nsk/regression//b4459438"
[2008-08-12T06:55:08.54] # Actual: testName=nsk/regression//b4459438
[2008-08-12T06:55:08.54] TESTDIR="${test_work_dir}"
[2008-08-12T06:55:08.54] # Actual: TESTDIR=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438
[2008-08-12T06:55:08.54] testWorkDir="${test_work_dir}/"
[2008-08-12T06:55:08.54] # Actual: testWorkDir=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/
[2008-08-12T06:55:08.54] export testWorkDir
[2008-08-12T06:55:08.54] tlogOutFile="${test_work_dir}/${test_name}.tlog"
[2008-08-12T06:55:08.54] # Actual: tlogOutFile=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.tlog
[2008-08-12T06:55:08.54] testErrFile="${test_work_dir}/${test_name}.err"
[2008-08-12T06:55:08.54] # Actual: testErrFile=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.err
[2008-08-12T06:55:08.54] EXECUTE_CLASS="${test_name}"
[2008-08-12T06:55:08.54] # Actual: EXECUTE_CLASS=b4459438
[2008-08-12T06:55:08.54] APPLICATION_TIMEOUT="${TIMEOUT}"
[2008-08-12T06:55:08.54] # Actual: APPLICATION_TIMEOUT=10
[2008-08-12T06:55:08.54] CLASSPATH="${test_work_dir}${PS}${CLASSPATH}"
[2008-08-12T06:55:08.54] # Actual: CLASSPATH=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites//vm/src/classes::/export/JDK/j2sdk1.4.2_17/lib/tools.jar:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites/share/harness/tonga/tonga3.0.jar:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites/share/harness/javatest/javatest.jar
[2008-08-12T06:55:08.54] export CLASSPATH
[2008-08-12T06:55:08.54] ${JAVAC} ${JAVAC_OPTS} -d ${test_work_dir} ${test_work_dir}/b4459438.java
[2008-08-12T06:55:08.54] # Actual: /export/JDK/j2sdk1.4.2_17/bin/javac -d /net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438 /net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.java
[2008-08-12T06:55:08.54] ${JAVA} ${JAVA_OPTS} ${EXECUTE_CLASS} ${TEST_ARGS}
[2008-08-12T06:55:10.06] # Actual: /export/JDK/j2sdk1.4.2_17/bin/java b4459438
[2008-08-12T06:55:10.06] ==> nsk/regression/b4459438 test LOG:
[2008-08-12T06:55:10.23] --> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter
[2008-08-12T06:55:10.23] Synopsis: Accesses to volatile longs don't work in the 64-bit vm
[2008-08-12T06:55:10.23]
[2008-08-12T06:55:10.23] ##> Thread number 1: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 100000002 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 1 (hex)
[2008-08-12T06:55:10.23] ##> right half-word = 2 (hex)
[2008-08-12T06:55:10.23] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.23] ##> Loop iteration number = 102466
[2008-08-12T06:55:10.23] ##> Thread number 3: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 500000003 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 5 (hex)
[2008-08-12T06:55:10.23] ##> right half-word = 3 (hex)
[2008-08-12T06:55:10.23] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.23] ##> Loop iteration number = 234442
[2008-08-12T06:55:10.23] ##> Thread number 5: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 500000003 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 5 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 3 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 127870
[2008-08-12T06:55:10.28] ##> Thread number 2: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 100000002 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 1 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 2 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 171706
[2008-08-12T06:55:10.28] ##> Thread number 6: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 240439
[2008-08-12T06:55:10.28] ##> Thread number 8: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 97107
[2008-08-12T06:55:10.28] ##> Thread number 7: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 0
[2008-08-12T06:55:10.28] ##> Thread number 9: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 139749
[2008-08-12T06:55:10.28] ##> Thread number 4: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:11.24] ##> left half-word = 8 (hex)
[2008-08-12T06:55:11.24] ##> right half-word = 6 (hex)
[2008-08-12T06:55:11.24] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:11.24] ##> Loop iteration number = 32551
[2008-08-12T06:55:11.24] ==> nsk/regression/b4459438 test FAILED
[2008-08-12T06:55:11.24] # Test level exit status: 97
[2008-08-12T06:55:12.25]
Test : nsk/regression/b4459438
TestBase : testbase_nsk
The nsk/regression/b4459438 shows that integrity of static volatile long variable
is corrupted on Solx86 on dual-CPU machine under the HotSpot VM (build 1.4.0-rc-b85).
This failure happens starting with HotSpot VM build 1.4.0-beta3-b81.
On one-CPU machine the test passes as well as it passes on dual-CPU machine
in -Xcomp mode.
See test log:
% .../java/dest/jdk1.4.0beta-b85/solx86/bin/java b4459438
==> nsk/regression/b4459438 test LOG:
--> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter
Synopsis: Accesses to volatile longs don't work in the 64-bit vm
##> Thread number 4: volatile long variable integrity was corrupted:
##> full double word = 400000005 (hex)
##> left half-word = 4 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 19529
##> Thread number 6: volatile long variable integrity was corrupted:
##> full double word = 600000005 (hex)
##> left half-word = 6 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 3171
##> Thread number 8: volatile long variable integrity was corrupted:
##> full double word = 800000005 (hex)
##> left half-word = 8 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 183
##> Thread number 2: volatile long variable integrity was corrupted:
##> full double word = 200000005 (hex)
##> left half-word = 2 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 217
##> Thread number 3: volatile long variable integrity was corrupted:
##> full double word = 300000005 (hex)
##> left half-word = 3 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 33809
##> Thread number 1: volatile long variable integrity was corrupted:
##> full double word = 100000005 (hex)
##> left half-word = 1 (hex)
##> right half-word = 5 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 2937
##> Thread number 5: volatile long variable integrity was corrupted:
##> full double word = 500000007 (hex)
##> left half-word = 5 (hex)
##> right half-word = 7 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 27581
##> Thread number 9: volatile long variable integrity was corrupted:
##> full double word = 900000007 (hex)
##> left half-word = 9 (hex)
##> right half-word = 7 (hex)
##> But left half-word and right half-word have to be equal!
##> Loop iteration number = 1
==> nsk/regression/b4459438 test FAILED
The nsk/regression/b4459438 test source:
===============================================================================
// File: @(#)b4459438.java 1.1 01/11/02
// Copyright 11/02/01 Sun Microsystems, Inc. All Rights Reserved
public class b4459438 extends Thread {
static final int STATUS_PASSED = 0;
static final int STATUS_FAILED = 2;
static final int STATUS_TEMP = 95;
static volatile int testResult = STATUS_PASSED;
static volatile java.io.PrintStream logOut;
static volatile long volatileLongToTest = 0;
static int count = 10000000;
int threadNumber;
long threadLongKey;
public b4459438(ThreadGroup threadGroup, String threadName, int threadNumber) {
super(threadGroup, threadName);
this.threadNumber = threadNumber;
long tmpLong = threadNumber;
threadLongKey = (tmpLong << 32) | tmpLong;
}
public void run() {
for(int i = 0; i < count; i++) {
long copyLong = volatileLongToTest;
long leftHalfWord = copyLong >>> 32;
long rightHalfWord = (copyLong << 32) >>> 32;
if (leftHalfWord != rightHalfWord) {
logOut.println("##> Thread number " + threadNumber + ": volatile long variable integrity was corrupted:");
logOut.println("##> full double word = " + Long.toHexString(copyLong) + " (hex)");
logOut.println("##> left half-word = " + Long.toHexString(leftHalfWord) + " (hex)");
logOut.println("##> right half-word = " + Long.toHexString(rightHalfWord) + " (hex)");
logOut.println("##> But left half-word and right half-word have to be equal!");
logOut.println("##> Loop iteration number = " + i);
testResult = STATUS_FAILED;;
return;
}
volatileLongToTest = threadLongKey;
}
}
public static int run(String argv[], java.io.PrintStream out) {
logOut = out;
logOut.println("==> nsk/regression/b4459438 test LOG:");
logOut.println("--> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter");
logOut.println(" Synopsis: Accesses to volatile longs don't work in the 64-bit vm\n");
ThreadGroup b4459438_ThreadGroup = new ThreadGroup("b4459438");
Object objForWait = new Object();
Thread[] threadList = new Thread[1];
int threads = 10;
for(int i = 1; i < threads; i++) {
(new b4459438(b4459438_ThreadGroup, ("" + i), i)).start();
}
while ( true ) {
if ( b4459438_ThreadGroup.enumerate(threadList) == 0 ) {
break;
}
synchronized(objForWait) {
try {
objForWait.wait(1000);
}
catch (Throwable thrown) {
logOut.println("##> Unexpected Exception was thrown by Main Thread:");
thrown.printStackTrace(logOut);
testResult = STATUS_FAILED;
break;
}
}
}
if ( testResult == STATUS_FAILED ) {
logOut.println("==> nsk/regression/b4459438 test FAILED");
}
else {
logOut.println("==> nsk/regression/b4459438 test PASSED");
}
return testResult;
}
public static void main(String argv[]) {
int testExitStatus = run(argv, System.out) + STATUS_TEMP;
System.exit(testExitStatus);
}
} // end of b4459438 class
Alexey Gibadullin, ###@###.###
This failure is intermittent and appeared in Merlin since build 81 against
both Server and Client VMs. The failure was observed on Solx86 and Linux in
default and -Xcomp modes. However, all failures were revealed just on
machines with two processors.
The test used to reveal that failure not in all runs and not against
all Merlin builds. However, it is reproduced regulary against Merlin-b89
- on Solx86 (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Solaris-8)
against Server VM in -Xcomp mode;
- on Linux (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Linux/RedHat6.2)
against Client VM in default mode.
See the bug
4459438 Accesses to volatile longs don't work in the 64-bit vm
that has already been integrated (in merlin-beta2).
Name: abR10010 Date: 04/14/2003
This failure happens again regulary witn Client VM (build 1.5.0-beta-b04,
compiled mode)
only on Solx86 (Intel: dual-CPU i686 600MHz, RAM 512Mb; OS: Solaris-8).
On one-CPU mashine the test passes as well as it passes on dual-CPU machine
with build 1.5.0-beta-b03.
###@###.### 2003-04-15
======================================================================
The test nsk/regression/b4459438 fail with 1.4.2 JDK at dual CPU machine:
#
[2008-08-12T06:54:48.88] export CLASSPATH
[2008-08-12T06:54:48.88] export PERL
[2008-08-12T06:54:48.88] export PATH
[2008-08-12T06:54:48.88] export TESTLIST
[2008-08-12T06:54:48.88] export HOME
[2008-08-12T06:54:48.88] export DISPLAY
[2008-08-12T06:54:48.88] export LD_LIBRARY_PATH
[2008-08-12T06:54:48.88] TEST_DEST_DIR="b4459438"
[2008-08-12T06:55:08.54] # Actual: TEST_DEST_DIR=b4459438
[2008-08-12T06:55:08.54] TESTNAME="${test_case_name}"
[2008-08-12T06:55:08.54] # Actual: TESTNAME=b4459438
[2008-08-12T06:55:08.54] testName="nsk/regression//b4459438"
[2008-08-12T06:55:08.54] # Actual: testName=nsk/regression//b4459438
[2008-08-12T06:55:08.54] TESTDIR="${test_work_dir}"
[2008-08-12T06:55:08.54] # Actual: TESTDIR=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438
[2008-08-12T06:55:08.54] testWorkDir="${test_work_dir}/"
[2008-08-12T06:55:08.54] # Actual: testWorkDir=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/
[2008-08-12T06:55:08.54] export testWorkDir
[2008-08-12T06:55:08.54] tlogOutFile="${test_work_dir}/${test_name}.tlog"
[2008-08-12T06:55:08.54] # Actual: tlogOutFile=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.tlog
[2008-08-12T06:55:08.54] testErrFile="${test_work_dir}/${test_name}.err"
[2008-08-12T06:55:08.54] # Actual: testErrFile=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.err
[2008-08-12T06:55:08.54] EXECUTE_CLASS="${test_name}"
[2008-08-12T06:55:08.54] # Actual: EXECUTE_CLASS=b4459438
[2008-08-12T06:55:08.54] APPLICATION_TIMEOUT="${TIMEOUT}"
[2008-08-12T06:55:08.54] # Actual: APPLICATION_TIMEOUT=10
[2008-08-12T06:55:08.54] CLASSPATH="${test_work_dir}${PS}${CLASSPATH}"
[2008-08-12T06:55:08.54] # Actual: CLASSPATH=/net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites//vm/src/classes::/export/JDK/j2sdk1.4.2_17/lib/tools.jar:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites/share/harness/tonga/tonga3.0.jar:/net/stt-13/export/home0/dtf/dtf_ws/suites/142_Suites/share/harness/javatest/javatest.jar
[2008-08-12T06:55:08.54] export CLASSPATH
[2008-08-12T06:55:08.54] ${JAVAC} ${JAVAC_OPTS} -d ${test_work_dir} ${test_work_dir}/b4459438.java
[2008-08-12T06:55:08.54] # Actual: /export/JDK/j2sdk1.4.2_17/bin/javac -d /net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438 /net/stt-13/export/stt/gtee/global/1.4.2_17/b06/142_VM/38/vm/rhel4-i586/vm-rhel4-i586_11BB2C358EC2008-08-11-21-17-09/stt-robot.Linux.i386/b4459438/b4459438.java
[2008-08-12T06:55:08.54] ${JAVA} ${JAVA_OPTS} ${EXECUTE_CLASS} ${TEST_ARGS}
[2008-08-12T06:55:10.06] # Actual: /export/JDK/j2sdk1.4.2_17/bin/java b4459438
[2008-08-12T06:55:10.06] ==> nsk/regression/b4459438 test LOG:
[2008-08-12T06:55:10.23] --> This test for #4459438 bug; Category: hotspot; Subcategory: hybrid_interpreter
[2008-08-12T06:55:10.23] Synopsis: Accesses to volatile longs don't work in the 64-bit vm
[2008-08-12T06:55:10.23]
[2008-08-12T06:55:10.23] ##> Thread number 1: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 100000002 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 1 (hex)
[2008-08-12T06:55:10.23] ##> right half-word = 2 (hex)
[2008-08-12T06:55:10.23] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.23] ##> Loop iteration number = 102466
[2008-08-12T06:55:10.23] ##> Thread number 3: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 500000003 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 5 (hex)
[2008-08-12T06:55:10.23] ##> right half-word = 3 (hex)
[2008-08-12T06:55:10.23] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.23] ##> Loop iteration number = 234442
[2008-08-12T06:55:10.23] ##> Thread number 5: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.23] ##> full double word = 500000003 (hex)
[2008-08-12T06:55:10.23] ##> left half-word = 5 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 3 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 127870
[2008-08-12T06:55:10.28] ##> Thread number 2: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 100000002 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 1 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 2 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 171706
[2008-08-12T06:55:10.28] ##> Thread number 6: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 240439
[2008-08-12T06:55:10.28] ##> Thread number 8: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 97107
[2008-08-12T06:55:10.28] ##> Thread number 7: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 0
[2008-08-12T06:55:10.28] ##> Thread number 9: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:10.28] ##> left half-word = 8 (hex)
[2008-08-12T06:55:10.28] ##> right half-word = 6 (hex)
[2008-08-12T06:55:10.28] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:10.28] ##> Loop iteration number = 139749
[2008-08-12T06:55:10.28] ##> Thread number 4: volatile long variable integrity was corrupted:
[2008-08-12T06:55:10.28] ##> full double word = 800000006 (hex)
[2008-08-12T06:55:11.24] ##> left half-word = 8 (hex)
[2008-08-12T06:55:11.24] ##> right half-word = 6 (hex)
[2008-08-12T06:55:11.24] ##> But left half-word and right half-word have to be equal!
[2008-08-12T06:55:11.24] ##> Loop iteration number = 32551
[2008-08-12T06:55:11.24] ==> nsk/regression/b4459438 test FAILED
[2008-08-12T06:55:11.24] # Test level exit status: 97
[2008-08-12T06:55:12.25]
- duplicates
-
JDK-4351343 create_itable_stub() inconsistent with start_of_itable()
- Closed
- relates to
-
JDK-4459438 Accesses to volatile longs don't work in the 64-bit vm
- Closed
-
JDK-4432655 read or write to long volatile variable is not atomic.
- Closed
-
JDK-4519234 read or write to long volatile variable is not atomic.
- Closed