dragonwell-project / dragonwell21

GNU General Public License v2.0
66 stars 19 forks source link

[upstream]jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java intermittently fail with -Xcomp on aarch64 platform #5

Open sendaoYan opened 11 months ago

sendaoYan commented 11 months ago

test command:

export test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java
function runJtreg() { jtreg -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` ; rm -rf $dir ; mkdir -p $dir ; time seq 100 | xargs -i -n 1 -P `nproc` bash -c "runJtreg {}" ; echo total fail number: `ls $dir/*.log 2> /dev/null | wc | awk '{print $1}'`

fail probability: 97/100

80.log

result:

Command line: [/home/yansendao/git/jdk/install/jvm/openjdk-22/bin/java -cp /home/yansendao/git/jdk/tmp-jtreg-TestGCCauseWithG1FullCollection/index-80/classes/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.d:/home/yansendao/git/jdk/test/jdk/jdk/jfr/event/gc/collection:/home/yansendao/git/jdk/tmp-jtreg-TestGCCauseWithG1FullCollection/index-80/classes/test/lib:/home/yansendao/git/jdk/test/lib:/home/yansendao/git/jdk/tmp-jtreg-TestGCCauseWithG1FullCollection/index-80/classes/test/jdk:/home/yansendao/git/jdk/test/jdk:/home/yansendao/software/jdk/jtreg-7.3/lib/javatest.jar:/home/yansendao/software/jdk/jtreg-7.3/lib/jtreg.jar -Xcomp -ea -esa -XX:+UseG1GC -Xmx100m -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc*=debug -XX:StartFlightRecording=settings=/home/yansendao/git/jdk/test/jdk/jdk/jfr/event/gc/collection/gc-testsettings.jfc,filename=G1FullCollection.jfr jdk.jfr.event.gc.collection.AppGCProvoker ]
[2023-11-17T08:39:35.624065574Z] Gathering output for process 138970
[2023-11-17T08:40:19.471728323Z] Waiting for completion for process 138970
[2023-11-17T08:40:19.472024243Z] Waiting for completion finished for process 138970
Output and diagnostic info for process 138970 was saved into 'pid-138970-output.log'
[2023-11-17T08:40:19.483205578Z] Waiting for completion for process 138970
[2023-11-17T08:40:19.483351238Z] Waiting for completion finished for process 138970
Event: jdk.GarbageCollection {
  startTime = 08:40:14.010 (2023-11-17)
  duration = 140 ms
  gcId = 1
  name = "G1Old"
  cause = "CodeCache GC Threshold"
  sumOfPauses = 37.0 ms
  longestPause = 36.9 ms
  eventThread = "G1 Main Marker" (osThreadId = 138995)
}

STDERR:
java.lang.RuntimeException: GC cause 'CodeCache GC Threshold' not in the valid causes[G1 Preventive Collection, G1 Compaction Pause, Metadata GC Threshold, GCLocker Initiated GC, G1 Evacuation Pause, System.gc()]: expected true, was false
    at jdk.test.lib.Asserts.fail(Asserts.java:634)
    at jdk.test.lib.Asserts.assertTrue(Asserts.java:486)
    at jdk.jfr.event.gc.collection.GCGarbageCollectionUtil.test(GCGarbageCollectionUtil.java:98)
    at jdk.jfr.event.gc.collection.TestGCCauseWithG1FullCollection.main(TestGCCauseWithG1FullCollection.java:45)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
    at java.base/java.lang.Thread.run(Thread.java:1570)

env info:

Linux anolis86-aarch64 4.19.91-27.2.an8.aarch64 #1 SMP Thu May 4 10:08:08 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:          755Gi       7.5Gi       705Gi       4.0Gi        42Gi       739Gi
Swap:         2.0Gi          0B       2.0Gi
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              96
On-line CPU(s) list: 0-95
Thread(s) per core:  1
Core(s) per socket:  48
Socket(s):           2
NUMA node(s):        1
Vendor ID:           HiSilicon
Model:               0
Model name:          Kunpeng-920
Stepping:            0x1
CPU MHz:             2600.000
CPU max MHz:         2600.0000
CPU min MHz:         200.0000
BogoMIPS:            200.00
L1d cache:           64K
L1i cache:           64K
L2 cache:            512K
L3 cache:            24576K
NUMA node0 CPU(s):   0-95
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment (build 11.0.20+0)
OpenJDK 64-Bit Server VM (build 11.0.20+0, mixed mode)
OpenJDK 64-Bit Server VM (11.0.20+0) for linux-aarch64 JRE (11.0.20+0), built on Nov 16 2023 06:47:41 by "" with gcc 9.3.1 20200408 (Red Hat 9.3.1-2)

image

sendaoYan commented 11 months ago

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