Skip to content
Snippets Groups Projects
Commit 46fd73e3 authored by Libor Peltan's avatar Libor Peltan Committed by Daniel Salzman
Browse files

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
parent 920b5010
No related branches found
No related tags found
1 merge request!1451zonedb: replan events for new zone_t instance no sooner...
......@@ -56,6 +56,7 @@ static void replan_from_zone(zone_t *zone, zone_t *old_zone)
replan_ddns(zone, old_zone);
const zone_event_type_t types[] = {
ZONE_EVENT_REFRESH,
ZONE_EVENT_FLUSH,
ZONE_EVENT_BACKUP,
ZONE_EVENT_NOTIFY,
......
#!/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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment