[Pdns-dev] PowerDNS Recursor 3.1.5 snapshot 3 available
bert hubert
bert.hubert at netherlabs.nl
Tue Feb 12 22:30:50 CET 2008
On Tue, Feb 12, 2008 at 09:23:43PM +0000, James Cloos wrote:
> bert> Can you rerun with --stack-size=1000000 to see if the problem goes away?
>
> That does prevent the SEGV. A binary search turned up 262053 as the
> minimum stack-size to prevent the SEGV.
glibc-2.7 must be wasting stack size somehow. I'll see if I can relay this
to the powers that be.
> I'm letting the installed version run now with stack-size=262144 in the
> recursor.conf. It seems to be happy.
I'd raise that to 300000 - extra memory is needed when entering deep
recursion loops.
> bert> Could you try valgrind? It might also have relevant things to say.
>
> Using no valgrind options (therefore the memcheck tool), this is the
> interesting output:
>
> ==20378== Invalid write of size 4
> ==20378== at 0x41D0BEF: makecontext (in /lib/libc-2.7.so)
> ==20378== by 0x809E225: serviceMain(int, char**) (pdns_recursor.cc:1744)
> ==20378== by 0x80A380E: main (pdns_recursor.cc:1908)
> ==20378== Address 0x4326310 is 8 bytes after a block of size 200,000 alloc'd
> ==20378== at 0x4023F04: operator new[](unsigned) (vg_replace_malloc.c:268)
Spot on! 200,000 is the default stack size.
> I'll test it out some more in valgrind and post if anything interesting
> shows up.
The diagnosis is in - what remains to be figured out is why glibc 2.7
needs so much stack..
Thanks for the testing James!
Bert
--
http://www.PowerDNS.com Open source, database driven DNS Software
http://netherlabs.nl Open and Closed source services
More information about the Pdns-dev
mailing list