[Pdns-users] PDNS-Recursor Segfaults
Imre Gergely
gimre at narancs.net
Tue May 20 20:41:21 UTC 2014
[root at c605 ~]# cat /etc/pdns-recursor/recursor.conf |grep -v "^#" | grep
-v "^$"
setuid=pdns-recursor
setgid=pdns-recursor
daemon=no
local-address=127.0.0.1
threads=1
[root at c605 ~]# strace /usr/sbin/pdns_recursor >
/tmp/strace-pdns-recursor.txt 2>&1
Segmentation fault
[root at c605 ~]#
[root at c605 ~]# ip a |grep inet |wc
4576 27451 233679
Attached. If this is not what you had in mind, please let me know.
On 05/20/2014 11:31 PM, bert hubert wrote:
> Imre,
>
> Can you strace the startup with threads=1?
>
> Bert
>
> On May 20, 2014 10:25 PM, Imre Gergely <gimre at narancs.net> wrote:
>>
>> Hi
>>
>> I did manage to reproduce this in a VM. Installed a CentOS 6.5, and recursor 3.5.3 from EPEL. Then I did this:
>>
>> for i in `seq 1 16`; do for j in `seq 1 254`; do ip a a 10.0.$i.$j/16 dev eth0; done; done
>>
>> Then I started the recursor, everything went just fine, did a bunch of digs, no problems.
>>
>> Then I added some more IPs:
>>
>> for i in `seq 17 32`; do for j in `seq 1 254`; do ip a a 10.0.$i.$j/16 dev eth0; done; done
>>
>> And then init.d/pdns-recursor restart:
>>
>> May 20 23:18:24 c605 pdns_recursor[21341]: PowerDNS recursor 3.5.3 (C) 2001-2013 PowerDNS.COM BV (Feb 10 2014, 17:26:52, gcc 4.4.7 20120313 (Red Hat 4.4.7-4))
>> starting up
>> May 20 23:18:24 c605 pdns_recursor[21341]: 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.
>> May 20 23:18:24 c605 pdns_recursor[21341]: Operating in 32 bits mode
>> May 20 23:18:24 c605 pdns_recursor[21341]: Reading random entropy from '/dev/urandom'
>> May 20 23:18:24 c605 pdns_recursor[21341]: Only allowing queries from: 127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
>> May 20 23:18:24 c605 pdns_recursor[21341]: Will not send queries to: 127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10, 0.0.0.0, ::
>> May 20 23:18:24 c605 pdns_recursor[21341]: NOT using IPv6 for outgoing queries - set 'query-local-address6=::' to enable
>> May 20 23:18:24 c605 pdns_recursor[21341]: Inserting rfc 1918 private space zones
>> May 20 23:18:24 c605 pdns_recursor[21341]: Listening for UDP queries on 127.0.0.1:53
>> May 20 23:18:24 c605 pdns_recursor[21341]: Enabled TCP data-ready filter for (slight) DoS protection
>> May 20 23:18:24 c605 pdns_recursor[21341]: Listening for TCP queries on 127.0.0.1:53
>> May 20 23:18:24 c605 pdns_recursor[21341]: Calling daemonize, going to background
>> May 20 23:18:24 c605 pdns_recursor[21342]: Set effective group id to 499
>> May 20 23:18:24 c605 pdns_recursor[21342]: Set effective user id to 498
>> May 20 23:18:24 c605 pdns_recursor[21342]: Launching 2 threads
>> May 20 23:18:24 c605 pdns_recursor[21342]: Done priming cache with root hints
>> May 20 23:18:24 c605 pdns_recursor[21342]: Enabled 'epoll' multiplexer
>> May 20 23:18:24 c605 pdns_recursor[21342]: Done priming cache with root hints
>> May 20 23:18:24 c605 pdns_recursor[21342]: Refreshed . records
>> May 20 23:18:25 c605 kernel: pdns_recursor[21345]: segfault at ffff01d4 ip 080b1626 sp b6397890 error 4 in pdns_recursor[8048000+112000]
>>
>> [root at c605 ~]# ip a |grep inet |wc
>> 4322 25927 220579
>> [root at c605 ~]# /etc/init.d/pdns-recursor start
>> Starting pdns-recursor: [ OK ] <-- starts OK
>> [root at c605 ~]# /etc/init.d/pdns-recursor stop
>> Stopping pdns-recursor: [ OK ]
>>
>> Adding one more /24:
>>
>> [root at c605 ~]# for j in `seq 1 254`; do ip a a 10.0.18.$j/16 dev eth0; done
>> [root at c605 ~]# /etc/init.d/pdns-recursor start
>> Starting pdns-recursor: [ OK ]
>> [root at c605 ~]# ip a |grep inet |wc
>> 4576 27451 233679
>>
>> It says it starts, but it doesn't, just segfaults.
>>
>> [root at c605 ~]# file /bin/bash
>> /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
>>
>>
>> On 05/20/2014 10:58 PM, James Baer wrote:
>>> Hi All - I'm experiencing an issue that I am unsure if it is a bug or just something I need to adjust on my systems to account for.
>>>
>>> I have 2 servers, both running pdns_recursor (3.5.3) on Centos 6.5, installed from epel repository. The recursor is only listening on localhost on each system.
>>>
>>> I am experiencing somewhat random crashes of the recursor with the following error:
>>>
>>> kernel: pdns_recursor[21993]: segfault at 200001fc8 ip 0000000000472780 sp 00007f3f9c03f690 error 4 in pdns_recursor[400000+111000]
>>>
>>> Both servers have a large number of ip addresses bound to them, in the range of 3-4k. I was able to replicate the segfaults on one of the servers by adding additional ip addresses. When I got to around 4k ip addresses the recursor simply would not even start, just segafulted right away. I was able to get it to start again, by removing some ip addresses, so i know it has something to do with how many addresses I have bound the server.
>>>
>>> Any body have an ideas what I can do to correct this problem? I really don't see a reason why the recursor would care how many ip addresses I have on a system.
>>>
>>> thank you
>>>
>>>
>>>
>>> _______________________________________________
>>> Pdns-users mailing list
>>> Pdns-users at mailman.powerdns.com
>>> http://mailman.powerdns.com/mailman/listinfo/pdns-users
>>>
>> --
>>
>> Imre Gergely
>>
>> http://havaz.net
>>
>> gpg --keyserver subkeys.pgp.net --recv-keys 0x34525305
>>
--
Imre Gergely
http://havaz.net
gpg --keyserver subkeys.pgp.net --recv-keys 0x34525305
-------------- next part --------------
A non-text attachment was scrubbed...
Name: strace-pdns-recursor.txt.zip
Type: application/x-zip-compressed
Size: 8684 bytes
Desc: not available
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20140520/47ec1965/attachment-0001.bin>
More information about the Pdns-users
mailing list