Wait until "rndc dumpdb" completes

"rndc dumpdb" works asynchronously, i.e. the requested dump may not yet
be fully written to disk by the time "rndc" returns.  Prevent false
positives for the "serve-stale" system test by only checking dump
contents after the line indicating that it is complete is written.

(cherry picked from commit 6e3f812afc)
This commit is contained in:
Michał Kępień 2019-03-20 08:46:58 +01:00
parent e677397e19
commit a61cc8cffe

View file

@ -97,6 +97,10 @@ grep "data\.example\..*2.*IN.*TXT.*A text record with a 1 second ttl" dig.out.te
# The max-stale-ttl is 3600 seconds, so the comment should say the data is
# stale for somewhere between 3500-3599 seconds.
$RNDCCMD 10.53.0.1 dumpdb > rndc.out.test$n 2>&1 || ret=1
for i in 0 1 2 3 4 5 6 7 8 9; do
grep '^; Dump complete$' ns1/named_dump1.db > /dev/null 2>&1 && break
sleep 1
done
awk '/; stale/ { x=$0; getline; print x, $0}' ns1/named_dump1.db |
grep "; stale (will be retained for 35.. more seconds) data\.example.*A text record with a 1 second ttl" > /dev/null 2>&1 || ret=1
# Also make sure the not expired data does not have a stale comment.