From 0bf36da305bc2d028450fa2313f3c0789e6e7451 Mon Sep 17 00:00:00 2001 From: Matthijs Mekking Date: Wed, 8 Mar 2023 09:11:19 +0100 Subject: [PATCH] Update serve-stale system test The serve-stale system test was intermittently failing due to a timing issue: I:serve-stale:check stale data.example TXT was refreshed... I:serve-stale:failed The RRset is refreshed, however, it first checks for an expected log line, prior checking that the stale data.example TXT was refreshed (using dig). This log line is there to ensure the record is actually refreshed before we start querying again. Alternatively we could just retry_quiet 10 . It would lower the chances for intermittent test failures, since there is no longer a "check for log line, sleep one second if check fails, check for log line, ...", prior to the check. --- bin/tests/system/serve-stale/tests.sh | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/bin/tests/system/serve-stale/tests.sh b/bin/tests/system/serve-stale/tests.sh index 26f7fd11bd..35bf911e9a 100755 --- a/bin/tests/system/serve-stale/tests.sh +++ b/bin/tests/system/serve-stale/tests.sh @@ -2016,8 +2016,11 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) wait_for_rrset_refresh() { - nextpart ns3/named.run | grep 'data.example.*2.*TXT.*"A text record with a 2 second ttl"' > /dev/null && return 0 - return 1 + $DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n + grep "status: NOERROR" dig.out.test$n > /dev/null || return 1 + grep "EDE" dig.out.test$n > /dev/null && return 1 + grep "ANSWER: 1," dig.out.test$n > /dev/null || return 1 + grep "data\.example\..*[12].*IN.*TXT.*A text record with a 2 second ttl" dig.out.test$n > /dev/null || return 1 } # This test ensures that after we get stale data due to @@ -2027,11 +2030,6 @@ n=$((n+1)) ret=0 echo_i "check stale data.example TXT was refreshed (stale-answer-client-timeout 0) ($n)" retry_quiet 10 wait_for_rrset_refresh || ret=1 -$DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n -grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 -grep "EDE" dig.out.test$n > /dev/null && ret=1 -grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1 -grep "data\.example\..*[12].*IN.*TXT.*A text record with a 2 second ttl" dig.out.test$n > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret)) @@ -2214,11 +2212,6 @@ n=$((n+1)) ret=0 echo_i "check stale data.example TXT was refreshed (stale-answer-client-timeout 0 stale-refresh-time 4) ($n)" retry_quiet 10 wait_for_rrset_refresh || ret=1 -$DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n -grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 -grep "EDE" dig.out.test$n > /dev/null && ret=1 -grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1 -grep "data\.example\..*[12].*IN.*TXT.*A text record with a 2 second ttl" dig.out.test$n > /dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status+ret))