dragonwell-project / dragonwell8

Alibaba Dragonwell8 JDK
http://dragonwell-jdk.io
GNU General Public License v2.0
4.21k stars 497 forks source link

[upstream][nightly]sun/tools/jstatd/TestJstatdExternalRegistry.java随机报错Could not read data for remote JVM #683

Open sendaoYan opened 2 months ago

sendaoYan commented 2 months ago

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

BINARY_URL=oss://compiler-ci-bucket/ajdk8/CI/tar/20240906-003517-221-#1102-linux.aarch64.release.master-ba5ab25c30b0aae76d88ff32646cb413e84940b8.tar.gz
JTREG_URL=oss://compiler-ci-bucket/jdk/tools/jtreg5.1-b01.zip
JDK_REPO=https://codeup.aliyun.com/5f4e0dfe6207a1a8b17fa7cf/compiler-test/jdk8u.git
JDK_BRANCH=master
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-ajdk8;tar -xf ${BINARY_URL##*/} -C bin-ajdk8

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

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

执行以下命令:
cd bin-ajdk8/j2sdk-image/ && 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-ajdk8/jdk/test/sun/tools/jstatd/TestJstatdExternalRegistry.java

x64和aarch64都有问题,失败率1/2000,复现命令:

[dongzhichun@CompilerTest-aarch64-5 ajdk8]$ function runJtreg() { jtreg -Xmixed  -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 2000 | xargs -i -n 1 -P 16 bash -c "runJtreg {}
" ; echo total fail number: `ls $dir/*.log 2> /dev/null | wc | awk '{print $1}'`
1306
real    23m1.489s
user    486m33.460s
sys     74m13.843s
total fail number: 1

【对比测试】
dragonwell8 同样问题 失败率3/1w oss://dragonwell/8.20.21/Alibaba_Dragonwell_Extended_8.20.21_aarch64_linux.tar.gz

Temurin8 同样问题 失败率1/1w oss://compiler-ci-bucket/openjdk/jdk8u422-ga/OpenJDK8U-jdk_aarch64_linux_hotspot_8u422b05.tar.gz

【用例日志】
1306.log
index-1306.rar

3116242 MainWrapper -Dtest.vm.opts=-Xmixed -ea -esa -Dtest.tool.vm.opts=-J-Xmixed -J-ea -J-esa -Dtest.compiler.opts= -Dtest.java.opts= -Dtest.jdk=/home/dongzhichun/working/tone/ajdk8/bin-ajdk8-0906/j2sdk-image -Dcompile.jdk=/home/dongzhichun/working/tone/ajdk8/bin-ajdk8-0906/j2sdk-image -Dtest.timeout.factor=4.0 -Dtest.root=/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test -Dtest.name=sun/tools/jstatd/TestJstatdExternalRegistry.java -Dtest.file=/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test/sun/tools/jstatd/TestJstatdExternalRegistry.java -Dtest.src=/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test/sun/tools/jstatd -Dtest.src.path=/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test/sun/tools/jstatd:/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test/lib/testlibrary -Dtest.classes=/home/dongzhichun/working/tone/ajdk8/tmp-jtreg-TestJstatdExternalRegistry/index-1307/classes/sun/tools/jstatd -Dtest.class.path=/home/dongzhichun/working/tone/ajdk8/tmp-jtreg-TestJstatdExternalRegist
3117073 -- process information unavailable
3110352 jtreg.jar -Dprogram=jtreg
3104272 -- process information unavailable

Start jstat:
[/home/dongzhichun/working/tone/ajdk8/bin-ajdk8-0906/j2sdk-image/bin/jstat -J-XX:+UsePerfData -J-Duser.language=en -gcutil 3115377@CompilerTest-aarch64-5:44491 250 5]
Could not read data for remote JVM 3115377

ProcessThread.stopProcess() will kill process
--- ProcessLog ---
cmd: /home/dongzhichun/working/tone/ajdk8/bin-ajdk8-0906/j2sdk-image/bin/jstatd -J-XX:+UsePerfData -J-Djava.security.policy=/home/dongzhichun/working/tone/ajdk8/jdk-repo-ajdk8/jdk/test/sun/tools/jstatd/all.policy -J-Dparent.pid.3115039 -p 44491
exitvalue: 143
stderr:
stdout:

STDERR:
 stdout: [];
 stderr: [Could not read data for remote JVM 3115377
]
 exitValue = 1

java.lang.RuntimeException: Expected to get exit value of [0]

        at jdk.testlibrary.OutputAnalyzer.shouldHaveExitValue(OutputAnalyzer.java:387)
        at JstatdTest.verifyJstatOutput(JstatdTest.java:246)
        at JstatdTest.runToolsAndVerify(JstatdTest.java:259)
        at JstatdTest.doTest(JstatdTest.java:361)
        at TestJstatdExternalRegistry.main(TestJstatdExternalRegistry.java:36)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:82)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
        at java.lang.Thread.run(Thread.java:879)
JavaTest Message: Test threw exception: java.lang.RuntimeException: Expected to get exit value of [0]

JavaTest Message: shutting down test

【版本信息】

[dongzhichun@CompilerTest-aarch64-5 bin]$ uname -a ; cat /etc/os-release ; free -h ; lscpu | head -n 25 ; ./java -version ; ./java -Xinternalversion
Linux CompilerTest-aarch64-5 5.10.134-16.1.al8.aarch64 #1 SMP Thu Dec 7 22:04:51 CST 2023 aarch64 aarch64 aarch64 GNU/Linux
NAME="Alibaba Cloud Linux"
VERSION="3 (Soaring Falcon)"
ID="alinux"
ID_LIKE="rhel fedora centos anolis"
VERSION_ID="3"
UPDATE_ID="9"
PLATFORM_ID="platform:al8"
PRETTY_NAME="Alibaba Cloud Linux 3 (Soaring Falcon)"
ANSI_COLOR="0;31"
HOME_URL="https://www.aliyun.com/"

              total        used        free      shared  buff/cache   available
Mem:          122Gi       1.5Gi        83Gi       0.0Ki        37Gi       119Gi
Swap:            0B          0B          0B
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              32
On-line CPU(s) list: 0-31
Thread(s) per core:  1
Core(s) per socket:  32
Socket(s):           1
NUMA node(s):        1
Vendor ID:           ARM
Model:               0
Model name:          Neoverse-N2
Stepping:            r0p0
CPU MHz:             3000.000
CPU max MHz:         3000.0000
CPU min MHz:         3000.0000
BogoMIPS:            100.00
L1d cache:           64K
L1i cache:           64K
L2 cache:            1024K
L3 cache:            65536K
NUMA node0 CPU(s):   0-31
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (Alibaba 8.9.14) (build 1.8.0_412-b0)
OpenJDK 64-Bit Server VM (Alibaba 8.9.14) (build 25.412-b0-internal, mixed mode)
OpenJDK 64-Bit Server VM (25.412-b0-internal) for linux-aarch64 JRE (1.8.0_412-b0), built on Sep  6 2024 02:16:29 by "" with gcc 4.8.5 20150623 (Red Hat 4.8.5-44)
sendaoYan commented 2 months ago

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

dzchun commented 2 months ago

dragonwell11,17,21都没问题