From 3e3ab438ad46b986e7f10d9cb2a988e346f774fa Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:41:11 +1100 Subject: [PATCH 1/6] qa/156 and qa/1339: deal with compiler babble on Fedora 40 (rawhide) The compiler here is just plain wrong, and issues warnings when recompiling the sample PMDA. Add a new _filter_compiler_babble() filter for just this case, and use it in qa/156 and qa/1339. Should resolve some failures in CI. --- qa/1339 | 9 ++++++--- qa/156 | 9 ++++++--- qa/common.filter | 24 ++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/qa/1339 b/qa/1339 index c47437bd65..136f505031 100755 --- a/qa/1339 +++ b/qa/1339 @@ -17,13 +17,16 @@ echo "QA output created by $seq" _filter() { - _filter_pmda_install | \ - sed -e 's/ 1[34][0-9][0-9] values/ 1300+ values/' \ + _filter_pmda_install \ + | _filter_compiler_babble \ + | sed \ + -e 's/ 1[34][0-9][0-9] values/ 1300+ values/' \ -e 's/ 1[0-9] warnings/ 10+ warnings/' \ -e 's/ [12][0-9][0-9] metrics/ 100+ metrics/' \ -e "s;$tmp;TMP;" \ -e "s/$port1/PORT1/" \ - -e "s/$port2/PORT2/" + -e "s/$port2/PORT2/" \ + # end } _check_pmda_gone() diff --git a/qa/156 b/qa/156 index 6e562b0001..882339e517 100755 --- a/qa/156 +++ b/qa/156 @@ -16,13 +16,16 @@ echo "QA output created by $seq" _filter() { - _filter_pmda_install | \ - sed -e 's/ 1[34][0-9][0-9] values/ 1300+ values/' \ + _filter_pmda_install \ + | _filter_compiler_babble \ + | sed \ + -e 's/ 1[34][0-9][0-9] values/ 1300+ values/' \ -e 's/ 1[0-9] warnings/ 10+ warnings/' \ -e 's/ [12][0-9][0-9] metrics/ 100+ metrics/' \ -e "s;$tmp;TMP;" \ -e "s/$port1/PORT1/" \ - -e "s/$port2/PORT2/" + -e "s/$port2/PORT2/" \ + # end } _check_pmda_gone() diff --git a/qa/common.filter b/qa/common.filter index dc9c3439dd..b41c5139fa 100644 --- a/qa/common.filter +++ b/qa/common.filter @@ -1139,3 +1139,27 @@ _filter_optional_labels() fi } +# some versions of the C compiler are just plain wrong and emit warning +# babble when re-compiling the sample PMDA +# +# For example in Fedora 40 (aka rawhide) circa Feb 2024 ... +# sample.c: In function ‘sample_fetch’: +# sample.c:1963:13: warning: array subscript ‘pmValueSet[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Warray-bounds=] +# 1963 | vset->pmid = pmidlist[i]; +# | ^~ +# sample.c:1954:49: note: object of size 16 allocated by ‘malloc’ +# 1954 | res->vset[i] = vset = (pmValueSet *)malloc(sizeof(pmValueSet) - +# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +# 1955 | sizeof(pmValue)); +# | ~~~~~~~~~~~~~~~~ +# +_filter_compiler_babble() +{ + sed \ + -e '/^sample.c: In function .sample_fetch.:/d' \ + -e '/^sample.c:.* array subscript .pmValueSet.0.. is partly outside/d' \ + -e '/^sample.c:.* note: object of size [0-9][0-9]* allocated by /d' \ + -e '/^ *[0-9][0-9]* *| /d' \ + -e '/^ *| /d' \ + # end +} From fa72ac92df0815be5f4f047b2d0edd7da2e32e9b Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:44:11 +1100 Subject: [PATCH 2/6] qa/1060.out: fix filtering Remove a bunch of date filtering that is not needed in this test where the dates are hard coded, not "today". Deal with the daily summary from pmie_check that may, or may not, be there. And remade the .out file. --- qa/1060 | 14 +++++--------- qa/1060.out | 10 +++++----- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/qa/1060 b/qa/1060 index f46b8a20e5..dc2ca904b1 100755 --- a/qa/1060 +++ b/qa/1060 @@ -42,21 +42,17 @@ _report() # Note: some versions of ls(1), e.g. OS X, don't report directory # names from the command line (so no pmie: line below) # - (cd $tmp; ls -lR pmie ) | $PCP_AWK_PROG ' -$1 == "pmie:" { next } + # and the 12.YYYYMMDD pmie_check summary file may, or may not be there + # + (cd $tmp; ls -lR pmie ) | tee -a $here/$seq.full | $PCP_AWK_PROG ' +$1 == "pmie:" { next } +$NF ~ /^12\.[0-9]/ { next } NF < 4 { print; next } { print "mode=" $1 " user=" $3 " group=" $4 " name=" $NF }' \ | sed \ -e '/\.prior/d' \ -e '/\.prev/d' \ -e '/^total /d' \ - -e 's/[2-9][0-9][0-9][0-9]:$/YYYY:/' \ - -e 's/[2-9][0-9][0-9][0-9]\/[01][0-9]:$/YYYY\/MM:/' \ - -e 's/[2-9][0-9][0-9][0-9]\/[01][0-9]\/[0-3][0-9]:$/YYYY\/MM\/DD:/' \ - -e 's/=[2-9][0-9][0-9][0-9]$/=YYYY/' \ - -e 's/=[0-3][0-9]$/=NN/' \ - -e 's/[2-9][0-9][0-9][0-9][01][0-9][0-3][0-9]/YYYYMMDD/' \ - -e 's/[012][0-9]\.[0-5][0-9]\./HH.MM./' \ -e 's/\. user=/ user=/' \ -e '/name=lock/d' \ # end diff --git a/qa/1060.out b/qa/1060.out index 2478b33b8f..6384610d58 100644 --- a/qa/1060.out +++ b/qa/1060.out @@ -2,11 +2,11 @@ QA output created by 1060 mode=drwxrwxr-x user=pcp group=pcp name=myhost pmie/myhost: -mode=drwxrwxr-x user=pcp group=pcp name=YYYY +mode=drwxrwxr-x user=pcp group=pcp name=2017 -pmie/myhost/YYYY: -mode=drwxrwxr-x user=pcp group=pcp name=NN +pmie/myhost/2017: +mode=drwxrwxr-x user=pcp group=pcp name=02 -pmie/myhost/YYYY/MM: -mode=-rw-r--r-- user=pcp group=pcp name=NN +pmie/myhost/2017/02: +mode=-rw-r--r-- user=pcp group=pcp name=12 From 54e8c2b511c09c951260fee2b9d7cee997356f57 Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:47:18 +1100 Subject: [PATCH 3/6] qa/triaged: add 1900 for some hosts in CI --- qa/triaged | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qa/triaged b/qa/triaged index c3446a230f..3b9cb9d0e4 100644 --- a/qa/triaged +++ b/qa/triaged @@ -75,7 +75,9 @@ 1724 Fedora 38 bpftrace PMDA is broken here, check-flakey passes (sometimes) 1900 Fedora 3[89] valgrind uninitialised data failure deep inside libbpf +1900 Fedora 40 ditto 1900 CentOS Stream9 ditto +1900 Debian 12 ditto 1900 openSUSE Leap 15.[56] ditto 1973 Ubuntu 16\.04 Python here is 3.5.2 and there a bunch of what look like dict ordering and/or cacheing sequence differences From af177863e37737e5f218cf4ba1654ef886c0737e Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:48:20 +1100 Subject: [PATCH 4/6] qa/new: make -s use the min= setting Botch or oversight? But new -s was taking way longer than it should have to find the smallest free test number. --- qa/new | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/qa/new b/qa/new index 5670f16be9..0e5e27b681 100755 --- a/qa/new +++ b/qa/new @@ -14,7 +14,7 @@ # use ./new-seqs to help refine min and max # -min=1470 +min=1480 max=1999 max_probes=200 @@ -150,9 +150,9 @@ if [ -z "$try" ] then if $smallest then - # as of Aug 2021, we're all full up to 1330 and a bit + # see above ... # - try=1330 + try=$min else # random in the range $min-$max based on user name convered from alpha # to numeric, prefixed by current clock seconds @@ -162,7 +162,8 @@ then fi fi -# first $try, then keep randomly probing the min-max space +# first $try, then keep randomly (no -s) or serially (with -s) probing +# the min-max space # $verbose && echo >&2 "Info: start probing at $try" probe=0 From e1cd62665fb97011c21cc884135aed2ba86db55b Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:50:07 +1100 Subject: [PATCH 5/6] qa/new-seqs: small enhancement to report smallest free test number --- qa/new-seqs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qa/new-seqs b/qa/new-seqs index 65a3d21d1b..ae3e519b6e 100755 --- a/qa/new-seqs +++ b/qa/new-seqs @@ -77,7 +77,8 @@ if [ -s $tmp.avail ] then echo "9999999" >>$tmp.avail _do_range <$tmp.avail - echo "$min $max `wc -l <$tmp.avail | sed -e 's/ //g'`" \ + first=`head -1 <$tmp.avail` + echo "$min $max $first `wc -l <$tmp.avail | sed -e 's/ //g'`" \ | awk ' - { printf "Between min=" $1 " and max=" $2 ", " $3 " available (%.1f%% free)\n",100 * $3 /($2 - $1 + 1) }' + { printf "Between min=" $1 " and max=" $2 ", " $4 " available (%.1f%% free, first=" $3 ")\n",100 * $4 /($2 - $1 + 1) }' fi From 18b87a3dbee991eb1c5c1e331055e754ab192c9a Mon Sep 17 00:00:00 2001 From: Ken McDonell Date: Sun, 11 Feb 2024 13:52:26 +1100 Subject: [PATCH 6/6] qa/group: reserve a couple of tests for post-6.2.0 work --- qa/group | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qa/group b/qa/group index 804f9631f8..98c371201d 100644 --- a/qa/group +++ b/qa/group @@ -1940,6 +1940,10 @@ x11 1479 pmda.linux kernel local 1480 pmda.lmsensors local 1481 other local +1482:reserved +#1482 pmcd pmlogger pmie pmfind pmproxy local +1483:reserved +#1483 other local 1486 logutil local 1489 python pmrep pmimport local 1490 python local labels