Wait for log zone_needdump is more reliable

In some cases we wait for the log message "sending notifies" before
proceeding with the test case. Notifies are rate limited. They are not
sent on every change to the zone. The "zone_needdump" messages happen on
every change.

(cherry picked from commit c17ac42608)
This commit is contained in:
Matthijs Mekking 2025-11-20 14:10:45 +01:00
parent d42bfbba7e
commit e026df2c32
2 changed files with 11 additions and 3 deletions

View file

@ -326,9 +326,13 @@ def test_nsec3_ent(ns3, templates):
# remove a name, bump the SOA, and reload
templates.render(f"{ns3.identifier}/nsec3-ent.kasp.db", {"serial": 2})
messages = [
f"zone {zone}/IN (unsigned): loaded serial 2",
f"zone_needdump: zone {zone}/IN (signed): enter",
]
with ns3.watch_log_from_here() as watcher:
ns3.rndc(f"reload {zone}")
watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies")
watcher.wait_for_sequence(messages)
# try the query again
query = isctest.query.create(f"c.{fqdn}", dns.rdatatype.A)
@ -345,9 +349,13 @@ def test_nsec3_ent(ns3, templates):
# add a name with an ENT, bump the SOA, and reload ensuring the time stamp changes
templates.render(f"{ns3.identifier}/nsec3-ent.kasp.db", {"serial": 3})
messages = [
f"zone {zone}/IN (unsigned): loaded serial 3",
f"zone_needdump: zone {zone}/IN (signed): enter",
]
with ns3.watch_log_from_here() as watcher:
ns3.rndc(f"reload {zone}")
watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies")
watcher.wait_for_sequence(messages)
# try the query again
query = isctest.query.create(f"x.y.z.{fqdn}", dns.rdatatype.A)

View file

@ -225,7 +225,7 @@ def test_zsk_prepub_step3(tld, alg, size, ns3):
# Force full resign and check all signatures have been replaced.
with ns3.watch_log_from_here() as watcher:
ns3.rndc(f"sign {zone}", log=False)
watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies")
watcher.wait_for_line(f"zone_needdump: zone {zone}/IN (signed): enter")
step["smooth"] = False
step["nextev"] = Iret(CONFIG, smooth=False)