[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