Skip to content

[dragonwell11.0.26.23.4][riscv64]java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java随机失败 #939

@sendaoYan

Description

@sendaoYan

https://tone.aliyun-inc.com/ws/xesljfzh/test_result/469665?tab=1
【环境准备】

BINARY_URL=oss://dragonwell/11.0.26.23.4-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.26.23.4_riscv64_linux.tar.gz
TEST_IMAGE=oss://dragonwell/11.0.26.23.4-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.26.23.4_riscv64_linux-testimage.tar.gz
JTREG_URL=oss://compiler-ci-bucket/jdk/tools/jtreg-7.3.1.1.zip
[email protected]:dragonwell-project/dragonwell11.git
JDK_BRANCH=dragonwell_extended-11.0.26.23.4
cd ~/tone/tone-matrix-compiler/common;./ossutil.bin_$(arch) -i;cd -
alias oss="~/tone/tone-matrix-compiler/common/ossutil.bin_$(arch) -e oss-cn-hangzhou.aliyuncs.com -u jvm_dev-b  ~/tone/tone-matrix-compiler/common/ossutil_bin/ossutil -o download -f -r"

部署二进制:
oss $BINARY_URL -l ${BINARY_URL##*/}
mkdir bin-dragonwell11;tar -xf ${BINARY_URL##*/} -C bin-dragonwell11
oss $TEST_IMAGE-l ${TEST_IMAGE##*/}
mkdir images-dragonwell11;tar -xf ${BINARY_URL##*/} -C images-dragonwell11

部署jtreg工具:
oss $JTREG_URL -l ${JTREG_URL##*/};unzip ${JTREG_URL##*/}

部署用例repo
git clone -b $JDK_BRANCH $JDK_REPO jdk-repo-dragonwell11

执行以下命令:
cd bin-dragonwell11&& export JAVA_HOME=$PWD ; export PATH=$JAVA_HOME/bin:$PATH ; export TEST_JDK_HOME=$JAVA_HOME && cd -
cd jtreg ;export JT_HOME=$PWD ; export PATH=$PWD/bin:$PATH;cd -

jtreg  -nr -v:fail,error -w tmp  -Xmixed  jdk-repo-ajdk11/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java

【相关用例】

java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java   1/50概率失败

复现命令
[root@fedora-riscv-2 ajdk11]# function runJtreg() { jtreg -Xmixed -nativepath:images-ajdk11/dragonwell-11.0.25.22+9-GA-test-image/hotspot/jtreg/native/ -ea -esa -timeoutFactor:4 -v:fail,error,time,nopass -nr -w $dir/index-$1 $test &> $dir/$1.log ; if [[ 0 -ne $? ]] ; then echo -n "$1 " ; else rm -rf $dir/index-$1 $dir/$1.log ; fi ; } ; export -f runJtreg ; export dir="tmp-jtreg-"`basename ${test##* } .java | sed "s|#|_|"` ; rm -rf $dir ; mkdir -p $dir ; time seq 50 | xargs -i -n 1 -P `nproc` bash -c "runJtreg {}" ; echo total fail number: `ls $dir/*.log 2> /dev/null | wc | awk '{print $1}'`
45
real    5m10.497s
user    225m20.410s
sys     93m53.287s
total fail number: 1

【对比测试】

release 同样问题
oss://dragonwell/11.0.25.22.9/Alibaba_Dragonwell_Extended_11.0.25.22.9_riscv64_linux.tar.gz

【用例日志】

java.lang.AssertionError: success weakCompareAndSetRelease double expected [true] but found [false]
	at org.testng.Assert.fail(Assert.java:99)
	at org.testng.Assert.failNotEquals(Assert.java:1037)
	at org.testng.Assert.assertEqualsImpl(Assert.java:140)
	at org.testng.Assert.assertEquals(Assert.java:122)
	at org.testng.Assert.assertEquals(Assert.java:819)
	at VarHandleTestAccessDouble.testArray(VarHandleTestAccessDouble.java:1054)
	at VarHandleBaseTest$AccessTestCase.testAccess(VarHandleBaseTest.java:412)
	at VarHandleTestAccessDouble.testAccess(VarHandleTestAccessDouble.java:225)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
	at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599)
	at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)
	at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
	at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822)
	at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:764)
	at org.testng.TestRunner.run(TestRunner.java:585)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
	at org.testng.SuiteRunner.run(SuiteRunner.java:286)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
	at org.testng.TestNG.runSuites(TestNG.java:1069)
	at org.testng.TestNG.run(TestNG.java:1037)
	at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:102)
	at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:58)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:955)

【jdk版本】

 java -version;java -Xinternalversion
openjdk version "11.0.26.22" 2025-01-21
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.25.22+9-GA (build 11.0.26.22+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.25.22+9-GA (build 11.0.26.22+9, mixed mode)
OpenJDK 64-Bit Server VM (11.0.26.22+9) for linux-riscv64 JRE (11.0.26.22+9), built on Feb 19 2025 09:05:50 by "" with gcc 9.2.0

【系统版本信息】

uname -a ; cat /etc/os-release ; free -h ; lscpu | head -n 25
Linux fedora-riscv-2 6.1.31 #1 SMP Thu Jun 15 01:30:00 CST 2023 riscv64 GNU/Linux
NAME="Fedora Linux"
VERSION="38 (Workstation Edition)"
ID=fedora
VERSION_ID=38
VERSION_CODENAME=""
PLATFORM_ID="platform:f38"
PRETTY_NAME="Fedora Linux 38 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:38"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=38
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=38
SUPPORT_END=2024-05-14
VARIANT="Workstation Edition"
VARIANT_ID=workstation
               total        used        free      shared  buff/cache   available
Mem:           125Gi       5.2Gi       103Gi       276Mi        17Gi       119Gi
Swap:          8.0Gi        93Mi       7.9Gi
Architecture:        riscv64
Byte Order:          Little Endian
CPU(s):              64
On-line CPU(s) list: 0-63
NUMA node(s):        4
NUMA node0 CPU(s):   0-7,16-23
NUMA node1 CPU(s):   8-15,24-31
NUMA node2 CPU(s):   32-39,48-55
NUMA node3 CPU(s):   40-47,56-63

主干版本:oss://compiler-ci-bucket/jdk/binary/tone/471286/jdk-repo-binary-riscv64-release.tar.xz
java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java 100次pass

Temurin21:OpenJDK21U-jdk_riscv64_linux_hotspot_21.0.6_7.tar.gz
java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java 100次pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions