Package: pdns-server
Version: 2.9.20-5~bpo.1
Severity: important

Hi,

pdns-server segfaults when using the bind backend when it just got a
notify, updated the zone, and I issue pdns_control bind-reload-now.

I reproduced this on a different set of systems as well, here's it:

moni runs bind9 and is the domain master for example.com.
uschi runs pdns-server, using the bind backend, and is slave for
example.com.

| uschi:/etc/powerdns# for i in pdns-bind.conf pdns.d/*; do echo "===== $i 
====="; cat $i; done
| ===== pdns-bind.conf =====
| directory "/var/spool/powerdns";
| 
| zone "example.com" {
|         type slave;
|         file "slave-example.com";
|         masters { 141.201.27.130; };
|         allow-transfer { };
| };
| 
| // vim:syn=named:
| ===== pdns.d/backends =====
| launch=bind
| ===== pdns.d/bind =====
| slave=yes
| bind-config=/etc/powerdns/pdns-bind.conf
| ===== pdns.d/no-cache =====
| cache-ttl=0
| ===== pdns.d/no-recursion =====
| allow-recursion=
| ===== pdns.d/numthreads =====
| distributor-threads=1
| ===== pdns.d/pdns.local =====
| # Here comes the local changes the user made, like configuration of 
| # the several backends that exists.


Now I update the zone on the master, and it sends a notify:

} Oct 22 17:20:41 uschi pdns[7409]: Received valid NOTIFY for example.com 
(id=1) from master 141.201.27.130: 25 > 24
} Oct 22 17:20:41 uschi pdns[7409]: AXFR started for 'example.com', transaction 
started
} Oct 22 17:20:41 uschi pdns[7409]: Zone 'example.com' 
(/var/spool/powerdns/slave-example.com) reloaded
} Oct 22 17:20:41 uschi pdns[7409]: AXFR done for 'example.com', zone committed

Then I run 'pdns_control bind-reload-now example.com' on uschi:

} Oct 22 17:21:13 uschi pdns[7409]: Got a signal 11, attempting to print trace: 
} Oct 22 17:21:13 uschi pdns[7409]: /usr/sbin/pdns_server-instance [0x80b5be6]
} Oct 22 17:21:13 uschi pdns[7409]: [0xffffe420]
} Oct 22 17:21:13 uschi pdns[7409]: 
/usr/lib/libstdc++.so.5(_ZNSs6assignERKSs+0x47) [0xb7f16387]
} Oct 22 17:21:13 uschi pdns[7409]: 
/usr/sbin/pdns_server-instance(_ZN12Bind2Backend11queueReloadEP13BB2DomainInfo+0xd2)
 [0x80f56f2]
} Oct 22 17:21:13 uschi pdns[7409]: 
/usr/sbin/pdns_server-instance(_ZN12Bind2Backend18DLReloadNowHandlerERKSt6vectorISsSaISsEEi+0x3ee)
 [0x80ee73e]
} Oct 22 17:21:13 uschi pdns[7409]: 
/usr/sbin/pdns_server-instance(_ZN11DynListener11theListenerEv+0x6d8) 
[0x80c24d8]
} Oct 22 17:21:13 uschi pdns[7409]: 
/usr/sbin/pdns_server-instance(_ZN11DynListener17theListenerHelperEPv+0x11) 
[0x80c1101]
} Oct 22 17:21:13 uschi pdns[7409]: /lib/tls/libpthread.so.0 [0xb7e5eb63]
} Oct 22 17:21:13 uschi pdns[7409]: /lib/tls/libc.so.6(__clone+0x5a) 
[0xb7dfd18a]
} Oct 22 17:21:13 uschi pdns[6911]: Our pdns instance (7409) exited after 
signal 6
} Oct 22 17:21:13 uschi pdns[6911]: Respawning
} Oct 22 17:21:14 uschi pdns[8678]: Guardian is launching an instance
} Oct 22 17:21:14 uschi pdns[8678]: This is a guarded instance of pdns
} Oct 22 17:21:14 uschi pdns[8678]: It is advised to bind to explicit addresses 
with the --local-address option
} Oct 22 17:21:14 uschi pdns[8678]: UDP server bound to 0.0.0.0:53
} Oct 22 17:21:14 uschi pdns[8678]: TCP server bound to 0.0.0.0:53
} Oct 22 17:21:14 uschi pdns[8678]: PowerDNS 2.9.20 (C) 2001-2006 PowerDNS.COM 
BV (Sep  9 2006, 17:34:31, gcc 3.3.5 (Debian 1:3.3.5-13)) starting up
} Oct 22 17:21:14 uschi pdns[8678]: PowerDNS comes with ABSOLUTELY NO WARRANTY. 
This is free software, and you are welcome to redistribute it according to the 
terms of the GPL version 2.
} Oct 22 17:21:14 uschi pdns[8678]: Set effective group id to 114
} Oct 22 17:21:14 uschi pdns[8678]: Set effective user id to 109
} Oct 22 17:21:14 uschi pdns[8678]: Creating backend connection for TCP
} Oct 22 17:21:14 uschi pdns[8678]: [bindbackend] Parsing 1 domain(s), will 
report when done
} Oct 22 17:21:14 uschi pdns[8678]: [bindbackend] Done parsing domains, 0 
rejected, 1 new, 0 removed
} Oct 22 17:21:14 uschi pdns[8678]: About to create 1 backend threads for UDP
} Oct 22 17:21:14 uschi pdns[8678]: Master/slave communicator launching
} Oct 22 17:21:14 uschi pdns[8678]: 1 slave domain needs checking
} Oct 22 17:21:14 uschi pdns[8678]: Domain example.com is fresh
} Oct 22 17:21:18 uschi pdns[8678]: Engaging bypass - now operating unthreaded


Successive pdns_control bind-reload-now example.com actions do not cause
segfaults.  Only the first after a notify does.

Something probably is wrong here. :)

Peter


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to