dragonwell-releng / dragonwell-adoptium

0 stars 0 forks source link

【ajdk11】-XX:+UseParallelGC选项下5个docker相关的用例执行失败 #335

Closed owanqian closed 7 months ago

owanqian commented 7 months ago

https://tone.aliyun-inc.com/ws/xesljfzh/test_result/272122?tab=3

【环境准备】

BINARY_URL=http://114.55.64.175:8666/ajdk-backup/11.0.21.21-test-ajdk_ga/OpenJDK11U-jdk_aarch64_linux_ajdk_2024-01-23-07-08.tar.gz
TEST_IMAGE=http://114.55.64.175:8666/ajdk-backup/11.0.21.21-test-ajdk_ga/OpenJDK11U-testimage_aarch64_linux_ajdk_2024-01-23-07-08.tar.gz
JDK_REPO=https://codeup.aliyun.com/5f4e0dfe6207a1a8b17fa7cf/compiler-test/jdk11.git
JDK_BRANCH=ajdk_ga-11.0.21.21

wget -O  binary.tar.gz $BINARY_URL
mkdir binary-download 
tar xzvf binary.tar.gz -C binary-download
cd binary-download && export JAVA_HOME=$PWD ; export PATH=$JAVA_HOME/bin:$PATH ; export TEST_JDK_HOME=$JAVA_HOME && cd -
wget -O test-image.tar.gz $TEST_IMAGE
make test-image
tar xzvf test-image.tar.gz -C test-image
wget -O jtreg.zip http://114.55.64.175:8666/compiler-ci-bucket/tools/jtreg-6.1.1.zip
unzip jtreg.zip
cd jtreg 
export JT_HOME=$PWD ; export PATH=$PWD/bin:$PATH
cd -
git clone -b $JDK_BRANCH $JDK_REPO jdk-repo

test=containers/docker/TestJFREvents.java
args='-XX:+UseParallelGC'
native='-nativepath:./test-image/hotspot/jtreg/native'

jtreg -w jt-work -nr -v:fail,error  $native $args $test

默认选项没问题。 -XX:+UseParallelGC选项下失败

涉及用例: arm/x86: containers/docker/TestJFREvents.java containers/docker/TestMemoryAwareness.java containers/docker/TestMemoryWithCgroupV1.java arm: jdk/internal/platform/docker/TestDockerMemoryMetrics.java jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java

【对比测试】

a11 release 同样问题 http://114.55.64.175:8666/ajdk-backup/11.0.20.20/OpenJDK11U-jdk_aarch64_linux_ajdk_2023-10-11-02-37.tar.gz

[root@VM20190228-137 bin]# ./java -version ; ./java -Xinternalversion
openjdk version "11.0.20.20-AJDK" 2023-10-11
OpenJDK Runtime Environment (Alibaba AJDK) (build 11.0.20.20-AJDK+8-Alibaba)
OpenJDK 64-Bit Server VM (Alibaba AJDK) (build 11.0.20.20-AJDK+8-Alibaba, mixed mode)
OpenJDK 64-Bit Server VM (11.0.20.20-AJDK+8-Alibaba) for linux-amd64 JRE (11.0.20.20-AJDK+8-Alibaba), built on Oct 11 2023 02:42:24 by "" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)

dragonwell11 extended , 没有问题。 wget https://dragonwell.oss-cn-shanghai.aliyuncs.com/11.0.21.18.9-test/Alibaba_Dragonwell_Extended_11.0.21.18.9_aarch64_linux.tar.gz

temurin11 , 没有问题。 wget https://ajdk-backup.oss-cn-hangzhou.aliyuncs.com/11.0.21.21-test-ajdk_ga/OpenJDK11U-jdk_aarch64_linux_ajdk_2024-01-24-06-38.tar.gz

【用例日志】

全部log文件: 5.log.txt

部分log展示:

[COMMAND]
docker run --tty=true --rm --volume /tmp/tone/run/jtreg/jt-work-docker/test_jdk/classes/15/jdk/internal/platform/docker/TestDockerMemoryMetrics.d:/test-classes/ --memory=200m --memory-swap=1g jdk-internal:test-metrics-memory /jdk/bin/java -cp /test-classes/ --add-exports java.base/jdk.internal.platform=ALL-UNNAMED -Djdk.lang.processReaperUseDefaultStackSize=true -Dtest.wisp.socketAddress=www.alibabacloud.com -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+UseVtableBasedCHA -XX:+LightWeightBarrier -XX:+UseCompactObjectHeaders -XX:+UseParallelGC -ea -esa MetricsMemoryTester memoryswap 200m 1g 
[2024-01-23T21:43:53.482830Z] Gathering output for process 1848494
[ELAPSED: 1 ms]
[STDERR]

[STDOUT]
[memoryswap, 200m, 1g]

Child process STDOUT is trimmed to 100 lines 
Full child process STDOUT was saved to docker-stdout-1848494.log
[2024-01-23T21:43:54.442812Z] Waiting for completion for process 1848494
[2024-01-23T21:43:54.442885Z] Waiting for completion finished for process 1848494
[2024-01-23T21:43:54.442940Z] Waiting for completion for process 1848494
[2024-01-23T21:43:54.442979Z] Waiting for completion finished for process 1848494
[COMMAND]
docker rmi --force jdk-internal:test-metrics-memory 
[2024-01-23T21:43:54.457845Z] Gathering output for process 1848737
[ELAPSED: 1 ms]
[STDERR]

[STDOUT]
Untagged: jdk-internal:test-metrics-memory

Child process STDOUT is trimmed to 100 lines 
Full child process STDOUT was saved to docker-stdout-1848737.log
STDERR:
 stdout: [[memoryswap, 200m, 1g]
];
 stderr: []
 exitValue = 137

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

    at jdk.test.lib.process.OutputAnalyzer.shouldHaveExitValue(OutputAnalyzer.java:431)
    at TestDockerMemoryMetrics.testMemoryAndSwapLimit(TestDockerMemoryMetrics.java:132)
    at TestDockerMemoryMetrics.main(TestDockerMemoryMetrics.java:62)
    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:991)

JavaTest Message: Test threw exception: java.lang.RuntimeException: Expected to get exit value of [0]

JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.RuntimeException: Expected to get exit value of [0]

【版本信息】

[root@iZbp1e1wxoqvxdec7os5n9Z jdk-11.0.20.20+0]# uname -a ; cat /etc/os-release ; free -h; lscpu| head -n 25;java -version; java -Xinternalversion
Linux iZbp1e1wxoqvxdec7os5n9Z 5.10.134-15.an8.aarch64 #1 SMP Thu Jul 20 00:33:45 CST 2023 aarch64 aarch64 aarch64 GNU/Linux
NAME="Anolis OS"
VERSION="8.8"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="8.8"
PLATFORM_ID="platform:an8"
PRETTY_NAME="Anolis OS 8.8"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"

              total        used        free      shared  buff/cache   available
Mem:           61Gi       843Mi        46Gi       0.0Ki        13Gi        59Gi
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
BIOS Vendor ID:      Alibaba Cloud
Model:               0
Model name:          Neoverse-N2
BIOS Model name:     virt-rhel7.6.0
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 "11.0.20.20-AJDK" 2023-10-11
OpenJDK Runtime Environment (Alibaba AJDK) (build 11.0.20.20-AJDK+0-Alibaba)
OpenJDK 64-Bit Server VM (Alibaba AJDK) (build 11.0.20.20-AJDK+0-Alibaba, mixed mode)
OpenJDK 64-Bit Server VM (11.0.20.20-AJDK+0-Alibaba) for linux-aarch64 JRE (11.0.20.20-AJDK+0-Alibaba), built on Oct 11 2023 02:42:11 by "" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)
sendaoYan commented 7 months ago

https://aone.alibaba-inc.com/v2/project/355606/bug/54727590# 《[ajdk11][11.0.21.21]ParallelGC运行containers/docker/TestJFREvents.java用例报错,被docker容器OOM killed》