[nsd-users] NSD serves old serial after restart
Anand Buddhdev
anandb at ripe.net
Wed Aug 17 12:29:55 UTC 2022
On 17/08/2022 14:08, Klaus Darilion wrote:
Hi Klaus,
> That's the weird thing. NSD knows that the version on disk is older
> than the previously served one (serial is goind backwards: "1660716050
> is updated to 1660716049"). Hence it could check the serial on the
> primary and fetch the latest version.
Except that NSD keeps a state file as well, in which it maintains timers
about when next to query the primary. For this zone, that time had not
yet arrived.
If you stop NSD, delete the state file, and start NSD, then it will have
no memory of the timers. After loading all the zones, it will
immediately query their primaries and update them if needed. But this
has the downside of causing a thundering herd towards the primaries in
the case where you have lots of secondary zones.
> I also tried "nsd-control transfer ....", but that also did not
> triggered an XFR. Only "force_transfer" triggered an XFR. From my
> understanding, "transfer: try to update slave zones to newer serial"
> should also trigger an XFR as the primary has a higher serial then the
> current served one.
Hmm. So NSD thinks the zone is up to date, because it has a newer serial
in the state file, but is actually serving an old serial. Could be a
subtle bug. I'll see if I can reproduce it on our test server.
Regards,
Anand
More information about the nsd-users
mailing list