On Mon, Sep 06, 2021 at 10:02:11PM +0200, Mark Wielaard wrote:
> This doesn't really explain the above failures, but there were still
> two tests that didn't use their own debuginfod client cache. Also one
> set a useless, but confusing DEBUGINFOD_URLS.
>
> Still looking for explanations of the other FAILS (which I cannot
> reproduce locally).
As expected there are still several failures on the buildbot workers,
but I did manage to replicate one failure locally. It happened because
PORT1 and PORT2 were equal.
ss -atn | fgrep ":$PORT2" && $PORT1 -ne $PORT2 || break
Does actually break when PORT1 == PORT2. The && -ne should have been
|| -eq. But just simplify the port selection a bit to use
non-overlapping ranges (split the 100 possible ports in 0-49 for port1
and 50-99 for port2).
Also because of a typo on error only the metrics of port1 were
shown. Fix the typo so we can better diagnose the remaining failures.
Cheers,
Mark
>From 7880ccb6483e76847cdf1c6c4e45a2180bee820a Mon Sep 17 00:00:00 2001
From: Mark Wielaard <m...@klomp.org>
Date: Mon, 6 Sep 2021 23:04:06 +0200
Subject: [PATCH] tests: Print metrics for both ports on error and fix port
selection
On error we would only print the metrics of one port (twice) because
of a typo. Also PORT1 and PORT2 could be equal because of a logic
error. Fix the typo and simplify the port selection by using
non-overlapping ranges to select PORT1 and PORT2.
---
tests/ChangeLog | 7 +++++++
tests/debuginfod-subr.sh | 8 ++++----
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/tests/ChangeLog b/tests/ChangeLog
index c1760877..14eb4d98 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,10 @@
+2021-09-06 Mark Wielaard <m...@klomp.org>
+
+ * debuginfod-subr.sh (err): Change ports to port in for loop so both
+ PORT1 and PORT2 are used.
+ (get_ports): Simplify port selection by using for 50 for PORT1 and
+ second 50 for PORT2.
+
2021-09-06 Mark Wielaard <m...@klomp.org>
* run-debuginfod-file.sh: Set DEBUGINFOD_CACHE_PATH. Export
diff --git a/tests/debuginfod-subr.sh b/tests/debuginfod-subr.sh
index 3222a2b0..7d238436 100755
--- a/tests/debuginfod-subr.sh
+++ b/tests/debuginfod-subr.sh
@@ -39,7 +39,7 @@ trap cleanup 0 1 2 3 5 9 15
errfiles_list=
err() {
echo ERROR REPORTS
- for ports in $PORT1 $PORT2
+ for port in $PORT1 $PORT2
do
echo ERROR REPORT $port metrics
curl -s http://127.0.0.1:$port/metrics
@@ -129,13 +129,13 @@ archive_test() {
get_ports() {
while true; do
- PORT1=`expr '(' $RANDOM % 100 ')' + $base`
+ PORT1=`expr '(' $RANDOM % 50 ')' + $base`
ss -atn | fgrep ":$PORT1" || break
done
# Some tests will use two servers, so assign the second var
while true; do
- PORT2=`expr '(' $RANDOM % 100 ')' + $base`
- ss -atn | fgrep ":$PORT2" && $PORT1 -ne $PORT2 || break
+ PORT2=`expr '(' $RANDOM % 50 ')' + $base + 50`
+ ss -atn | fgrep ":$PORT2" || break
done
}
--
2.32.0