[Pdns-users] recursor unable to resolve asn.routeviews.org data
J Knight
jknight+pdns at spamshield.org
Wed Jan 30 04:07:25 UTC 2008
Just a follow-up to this dated issue:
we just compiled the (seemingly silently refreshed) pdns-recursor-3.1.5-snapshot
dated 15-Nov-2007 from source, and the issue with the disappearing
control socket has been resolved - we are now doing the lookups against
asn.routeviews.org out of the Recursor: with up to 120 lookups per minute,
we'd sure like to forgot the memory bleed of BIND :)
Thanks.
On 8/18/2007 at 11:18 PM, "J Knight" <jknight+pdns at spamshield.org> wrote:
> On 8/18/2007 at 7:17 AM, "bert hubert" <bert.hubert at netherlabs.nl> wrote:
>> On Fri, Aug 17, 2007 at 12:42:56PM -0400, J Knight wrote:
>>> After stumbling into the HACKING section of the Wiki, I find:
>>> http://svn.powerdns.com/snapshots/ - but there's no 3.1.5 snapshot,
>>> there's pre-relesase 3.1.4 snapshots only.
>>> Is there another HTTP/FTP-accessible location?
>> I've uploaded a 3.1.5 snapshot here:
>> http://svn.powerdns.com/snapshots/pdns-recursor-3.1.5-snapshot.tar.bz2
>>> http://downloads.powerdns.com/releases/rpm/ have not seen an update since
>>> 12-Nov-2006 (9 months ago!).
>> And for good reason - we've only found 1 important bug in 3.1.4, and there
>> are no (urgent) feature requests. There will be a 3.1.5 of course, but so
>> far there have not been pressing reasons for it.
>> Please let us know how the 3.1.5 snapshot works for you!
> Thank you!
> Yes, I can confirm that all (3) TXT records are returned.
> Unfortunately, something rather significant broke:
> The pdns_recursor.controlsocket gets unlink'd the moment pdns_recursor
> daemonizes - and the fork'd child somehow never re-creates it - e.g.:
> no control socket.
> If I interpret the strace right, under the official pdns-recursor-3.1.4-1.i386.rpm
> recursor, the controlsocket never gets unlinked before the parent process exits!
> Environment: Linux RedHat ES3
> Boost: boost_1_34_1 (not compiled)
> builds ok with one warning:
> CXXFLAGS=-I../boost_1_34_1/ ./configure
> CXXFLAGS=-I../boost_1_34_1/ make clean
> CXXFLAGS=-I../boost_1_34_1/ make all
> ...
> g++ -I../boost_1_34_1/ -Wall -DBOOST_SP_DISABLE_THREADS -O3 -D_GNU_SOURCE -c -o dnsparser.o dnsparser.cc
> dnsparser.cc: In member function `void PacketReader::copyRecord(unsigned char*,
> short unsigned int)':
> dnsparser.cc:309: warning: comparison between signed and unsigned integer
> expressions
> ....
> CXXFLAGS=-I../boost_1_34_1/ make install
> (may I suggest an uninstall: target in the Makefile :) ?)
> Tried it with suid/sgid and without - no effect.
> Tried with chroot and without - no effect.
> (machine heavily loaded with disk activity at this time (LA>4), it can take a minute for the
> recursor to come up, but one can nicely observe the control socket in /var/run/ getting
> created and unlink'd the moment PID 16099 (below) disappears!)
> Aug 18 23:04:05 pascal pdns_recursor[16099]: PowerDNS recursor 3.1.5-snapshot (C) 2001-2007 PowerDNS.COM BV (Aug 18
> 2007, 21:57:19, gcc 3.2.3 20030502 (Red Hat Linux 3.2.3-49)) starting up
> Aug 18 23:04:06 pascal pdns_recursor[16099]: 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.
> Aug 18 23:04:07 pascal pdns_recursor[16099]: Operating in 32 bits mode
> Aug 18 23:04:08 pascal pdns_recursor[16099]: Only allowing queries from: 127.0.0.0/8, ....
> Aug 18 23:04:09 pascal pdns_recursor[16099]: Will not send queries to: 127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
> Aug 18 23:04:18 pascal pdns_recursor[16099]: Inserting rfc 1918 private space zones
> Aug 18 23:04:19 pascal pdns_recursor[16099]: Listening for UDP queries on 67.18.254.X:53
> Aug 18 23:04:20 pascal pdns_recursor[16099]: Listening for UDP queries on 127.0.0.1:5353
> Aug 18 23:04:21 pascal pdns_recursor[16099]: Listening for TCP queries on 67.18.254.X:53
> Aug 18 23:04:22 pascal pdns_recursor[16099]: Listening for TCP queries on 127.0.0.1:5353
> Aug 18 23:04:23 pascal pdns_recursor[16099]: Done priming cache with root hints
> Aug 18 23:04:24 pascal pdns_recursor[16099]: Calling daemonize, going to background
> Aug 18 23:04:25 pascal pdns_recursor[16124]: Non-fatal error initializing possible multiplexer (Setting up epoll: Function not implemented), falling back
> Aug 18 23:04:26 pascal pdns_recursor[16124]: Enabled 'select' multiplexer
> Aug 18 23:04:27 pascal pdns_recursor[16124]: Set effective group id to 513
> Aug 18 23:04:28 pascal pdns_recursor[16124]: Set effective user id to 512
> Aug 18 23:04:30 pascal pdns_recursor[16124]: Refreshed . records
> Note: the "Non-Fatal error" appears with the official pdns-recursor-3.1.4-1.i386.rpm as well.
> strace'ing the process (and the output below is not from the log msgs above
> strictly, but some other run - I did too many to count):
> rt_sigaction(SIGPIPE, {0x272140, [], SA_RESTORER, 0x1c0ec8}, {SIG_DFL}, 8) = 0
> send(3, "<27>Aug 18 23:27:47 pdns_recurso"..., 85, 0) = 85
> rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
> socket(PF_FILE, SOCK_DGRAM, 0) = 8
> setsockopt(8, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
> unlink("/var/run/powerdns/pdns_recursor.controlsocket") = -1 ENOENT (No such file or directory)
> bind(8, {sa_family=AF_FILE, path="/var/run/powerdns/pdns_recursor.controlsocket"}, 110) = 0
> time(NULL) = 1187494068
> time(NULL) = 1187494068
> time(NULL) = 1187494068
> .....
> write(2, " ", 1 ) = 1
> write(2, "t", 1t) = 1
> write(2, "o", 1o) = 1
> write(2, " ", 1 ) = 1
> write(2, "b", 1b) = 1
> write(2, "a", 1a) = 1
> write(2, "c", 1c) = 1
> write(2, "k", 1k) = 1
> write(2, "g", 1g) = 1
> write(2, "r", 1r) = 1
> write(2, "o", 1o) = 1
> write(2, "u", 1u) = 1
> write(2, "n", 1n) = 1
> write(2, "d", 1d) = 1
> write(2, "\n", 1
> ) = 1
> time([1187494068]) = 1187494068
> getpid() = 19513
> rt_sigaction(SIGPIPE, {0x272140, [], SA_RESTORER, 0x1c0ec8}, {SIG_DFL}, 8) = 0
> send(3, "<28>Aug 18 23:27:48 pdns_recurso"..., 80, 0) = 80
> rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
> clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb75f00c8) = 19557
> close(8) = 0
> unlink("/var/run/powerdns/pdns_recursor.controlsocket") = 0
> exit_group(0) = ?
> I also ran this with strace -f , and the child never does a bind() call
> for the socket (sa_family=AF_FILE).
> Thanks - Jamie
> _______________________________________________
> Pdns-users mailing list
> Pdns-users at mailman.powerdns.com
> http://mailman.powerdns.com/mailman/listinfo/pdns-users
More information about the Pdns-users
mailing list