Knot 1.6.0-rc2 failing to expire zone
I've setup Knot 1.6.0-rc2, and loaded a zone into it. The zone has an expiry of 900 seconds. The zone's master answers a SOA query for the zone over UDP, but does not provide an AXFR. Knot keeps trying and trying, but does not expire the zone. If I point Knot at a master IP address that does not answer at all, then the zone is properly expired. However, if the master answers the SOA query, but fails to provide an AXFR, Knot doesn't see this as an error condition:
2014-10-20T03:45:39 info: configuration reloaded
2014-10-20T03:45:39 info: [int] loaded, serial 0 -> 2013092200
2014-10-20T03:45:39 info: [int] refresh, outgoing, 193.0.19.101@53: master has newer serial 2013092200 -> 2014092200
2014-10-20T03:45:39 notice: [int] IXFR, incoming, 193.0.19.101@53: fallback to AXFR
2014-10-20T03:45:39 error: [int] AXFR, incoming, 193.0.19.101@53: server responded with NOTAUTH
2014-10-20T03:45:39 error: [int] AXFR, incoming, 193.0.19.101@53: failed (failed)
...
...
...
2014-10-20T15:45:39 info: [int] refresh, outgoing, 193.0.19.101@53: master has newer serial 2013092200 -> 2014092200
2014-10-20T15:45:39 notice: [int] IXFR, incoming, 193.0.19.101@53: fallback to AXFR
2014-10-20T15:45:39 error: [int] AXFR, incoming, 193.0.19.101@53: server responded with NOTAUTH
2014-10-20T15:45:39 error: [int] AXFR, incoming, 193.0.19.101@53: failed (failed)
In my opinion, any failure to transfer a zone is an error, and if Knot is unable to transfer the zone, then it should be expired when the expiry timer arrives. I think Knot's zone expiry logic needs improvement here.