Hello Christof,

On Sun, 2021-08-01 at 22:03 +0200, Christof Meerwald via Pdns-users
wrote:
> So the problem only seems to occur when also launching the gsqlite3
> backend in addition to the bind backend. I am mainly using the bind
> backend for the zone data and gsqlite3 for DNSSEC.
> 
> 

> launch=bind,gsqlite3
> 
> bind-hybrid
> 
> gsqlite3-database=/var/lib/powerdns/pdns.db
> gsqlite3-dnssec

In your gsqlite3 database, every zone (that has DNSSEC data) has a numeric ID 
(domains.id). In the bindbackend, every zone also has an ID (generated counting 
from 1 at startup and when you add a zone). Without the zone cache, hybrid mode 
can deal with those IDs not matching. But in the zone cache, one zone has one 
ID. The zone cache is filled first from bind, then from gsqlite3, so gsqlite3 
IDs end up in the zone cache - and likely those are wrong, and then your BIND 
data is no longer found.

Then, when you add-zone, that overwrites the zone->ID mapping in the zone cache 
with the BIND id, which makes that zone work.

In short, hybrid mode and the zone cache do not play well together.

In your case, perhaps bind-dnssec-db (which uses an sqlite3 database as well, 
although with a slightly different schema) might be a simpler setup that avoids 
the problem.

Can you file a ticket? We should probably disable the zone cache (or error on 
startup) if bind-hybrid is enabled.

Kind regards,
-- 
Peter van Dijk
PowerDNS.COM BV - https://www.powerdns.com/

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to