From 46fd73e36950a2dcfdac336680bb5ad9ee5903aa Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 27 Apr 2022 09:50:48 +0200 Subject: zonedb-reload: when recreating zone, replan also refresh... ...as it might be planned by incomming NOTIFY during zonedb-reload and in this case its not in timers --- tests-extra/tests/zone/reload_notify/test.py | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests-extra/tests/zone/reload_notify/test.py (limited to 'tests-extra/tests/zone') diff --git a/tests-extra/tests/zone/reload_notify/test.py b/tests-extra/tests/zone/reload_notify/test.py new file mode 100644 index 000000000..9709ff577 --- /dev/null +++ b/tests-extra/tests/zone/reload_notify/test.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +'''Test race conditions about incomming NOTIFY during zonedb-reload''' + +from dnstest.test import Test +from dnstest.utils import * + +import random +import threading + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +zones = t.zone_rnd(60, dnssec=False, records=10) +t.link(zones, master, slave, ixfr=True) + +t.start() + +serials = slave.zones_wait(zones) + +def send_reload(server): + server.ctl("reload") + +def send_update(up): + up.send() + +for z in zones: + up = master.update(z) + up.add("dojdojwodijowjeojdwe", 3600, "A", "1.2.3.4") + + threading.Thread(target=send_update, args=[up]).start() + +t.sleep(random.choice([0.1, 0.2, 0.5, 1, 2, 4])) + +slave.reload() + +slave.zones_wait(zones, serials) + +t.end() -- cgit v1.2.3