Crash when doing rediscover with bind backend #564

Habbie opened this Issue Apr 26, 2013 · 3 comments


None yet

1 participant

Habbie commented Apr 26, 2013

contents of /var/named and /etc/powerdns:

CentOS 5.7 64bit. running 3.0.1 RPM compiled from
Added: (should happen without this)
Added: (happens without this)


Steps to reproduce:
/usr/sbin/pdns_server --daemon=no

Poll a wildcard address from the server:
while true ; do date ; dig +short fooo$ A @serveraddr ; x=$((x+1)) ;done

Change permissions of /var/named and rediscover:
chmod -R go+r /var/named ; /usr/bin/pdns_control rediscover

Every 1-15 or so runs:
Jan 23 13:05:36 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed
Jan 23 13:05:36 Got a signal 11, attempting to print trace:
Jan 23 13:05:36 /usr/sbin/pdns_server [0x4adce6]
Jan 23 13:05:36 /lib64/ [0x3a6da302d0]
Jan 23 13:05:36 [0x16ec4a00]

@Habbie Habbie was assigned Apr 26, 2013
@Habbie Habbie closed this Apr 26, 2013
Habbie commented Apr 26, 2013

Attachment 'this patch avoids the crashes but with it, domains disappear under the same stress conditions' (bindbackend-crash-1.patch)

Habbie commented Apr 26, 2013

Author: peter
My notes on reproduction:

07:07    Habbie:  _cyclops_, create a named.conf with some zones in it (5 was enough for me); run pdns_server. in terminal two, run something like 
07:07    Habbie:    while : ; do dig +short a www.${RANDOM:0:1} @ -p 5300 ; done
07:07    Habbie:  or dnsperf or some other hammering tool if you have it
07:07    Habbie:  in terminal 3, run
07:07    Habbie:    while : ; do sudo ./pdns_control --config-name=heart rediscover ; sudo ./pdns_control --config-name=heart reload ; done
07:07    Habbie:  then wait a while
07:07    Habbie:  usually doesn't take long
07:08    Habbie:  adapt IP, -p 5300 and --config-name to your setup, of course
Habbie commented Apr 26, 2013

Author: ahu
Removed crash in r2837 using a variant of this patch. This causes us to emit a SERVFAIL, which we cache for a little bit, but domains no longer vanish.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment