dragonwell-project / dragonwell11

Alibaba Dragonwell11 JDK
https://www.aliyun.com/product/dragonwell
GNU General Public License v2.0
552 stars 111 forks source link

[dragonwell11][riscv64][extended]用例gc/stress/TestReclaimStringsLeaksMemory.java随机报错 #817

Open sendaoYan opened 2 months ago

sendaoYan commented 2 months ago

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

登录环境:
30.220.116.74

BINARY_URL=oss://dragonwell/11.0.23.20.9-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz
TEST_IMAGE=oss://dragonwell/11.0.23.20.9-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux-testimage.tar.gz
JTREG_URL=oss://compiler-ci-bucket/jdk/tools/jtreg-6.1.1.zip
JDK_REPO=git@github.com:dragonwell-project/dragonwell11.git
JDK_BRANCH=dragonwell_extended-11.0.23.20.9
alias oss="/tmp/tone/tone-matrix-compiler/common/ossutil.bin_riscv64 -e oss-cn-hangzhou.aliyuncs.com -u jvm_dev  -b /tmp/tone/run/jtreg/ossutil_bin/ossutil -o download -f -r"

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

cd binary-download/dragonwell-11.0.22.19+7-ga/ && export JAVA_HOME=$PWD ; export PATH=$JAVA_HOME/bin:$PATH ; export TEST_JDK_HOME=$JAVA_HOME && cd -

部署jtreg工具:
oss $JTREG_URL -l ${JTREG_URL##*/};unzip ${JTREG_URL##*/}
cd jtreg ;export JT_HOME=$PWD ; export PATH=$PWD/bin:$PATH;cd -

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

执行以下命令:
test="gc/stress/TestReclaimStringsLeaksMemory.java"
args="-Djdk.lang.processReaperUseDefaultStackSize=true -Dtest.wisp.socketAddress=www.alibabacloud.com -Xmixed -ea -esa"
native=-nativepath:test-images/dragonwell-11.0.22.19+7-ga-test-image/hotspot/jtreg/native
jtreg  -nr -v:fail,error -w tmp  $args $native  $test

失败率1/10,复现命令: 7.log index-7.rar

[root@fedora-riscv jtreg]# echo $test
jdk-repo/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java
[root@fedora-riscv jtreg]# echo $native
-nativepath:test-images/dragonwell-11.0.22.19+7-ga-test-image/hotspot/jtreg/native/
[root@fedora-riscv jtreg]# echo $args
-Djdk.lang.processReaperUseDefaultStackSize=true -Dtest.wisp.socketAddress=www.alibabacloud.com -Xmixed -ea -esa

[root@fedora-riscv jtreg]# function runJtreg() { jtreg $args $native -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 10 | xargs -i -n 1 -P `nproc` bash -c "runJtreg {}" ; echo total fail number: `ls $dir/*.log 2> /dev/null | wc | awk '{print $1}'`
7
real    11m57.683s
user    132m59.446s
sys     13m3.008s
total fail number: 1

【对比测试】 dragonwell release 同样问题 失败率2/10 6.log 10.log oss://dragonwell/11.0.22.19.7/Alibaba_Dragonwell_Extended_11.0.22.19.7_riscv64_linux.tar.gz

[root@fedora-riscv jtreg]#  bin-release/dragonwell-11.0.22.19+7-ga/bin/java -version
openjdk version "11.0.22.19" 2024-01-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7, mixed mode)
[root@fedora-riscv jtreg]#  bin-release/dragonwell-11.0.22.19+7-ga/bin/java -Xinternalversion
OpenJDK 64-Bit Server VM (11.0.22.19+7) for linux-riscv64 JRE (11.0.22.19+7), built on Mar  5 2024 04:12:27 by "" with gcc 9.2.0

【用例日志】

STDERR:
java.lang.RuntimeException: Could not find Symbol memory usage in NMT output
    at gc.stress.TestReclaimStringsLeaksMemory.verifySymbolMemoryUsageNotTooHigh(TestReclaimStringsLeaksMemory.java:78)
    at gc.stress.TestReclaimStringsLeaksMemory.main(TestReclaimStringsLeaksMemory.java:67)
    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$MainThread.run(MainWrapper.java:127)
    at java.base/java.lang.Thread.run(Thread.java:955)

JavaTest Message: Test threw exception: java.lang.RuntimeException: Could not find Symbol memory usage in NMT output
JavaTest Message: shutting down test

【版本信息】

[root@fedora-riscv bin]# uname -a ; cat /etc/os-release ; free -h ; lscpu | head -n 25 ; ./java -version ; ./java -Xinternalversion
Linux fedora-riscv 6.1.22 #2 SMP Thu May  4 19:24:40 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:            62Gi       990Mi        54Gi       6.1Gi       7.3Gi        55Gi
Swap:          8.0Gi          0B       8.0Gi
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
openjdk version "11.0.23.19" 2024-04-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.23.19+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.23.19+7, mixed mode)
OpenJDK 64-Bit Server VM (11.0.23.19+7) for linux-riscv64 JRE (11.0.23.19+7), built on Apr 26 2024 03:22:06 by "" with gcc 9.2.0
sendaoYan commented 2 months ago

https://code.alibaba-inc.com/os-quality/tone-matrix-compiler/codereview/16587726