[Pdns-users] [recursor] Segmentation fault at startup
bert hubert
bert.hubert at netherlabs.nl
Wed May 26 09:17:25 UTC 2010
On Wed, May 26, 2010 at 11:01:38AM +0200, Stephane Bortzmeyer wrote:
> [BTW, it would be better to do so on a ticketing system but I cannot
> find a way to create a new ticket in the PowerDNS Trac.]
There is some anti-spam trickery:
TO FILE BUGS, OR CHANGE THE WIKI, CLICK 'LOGIN' ABOVE, USERNAME anon
PASSWORD "No Spam" without quotes or the space in between '
So the password is NoSpam
> > Could you split line 1508 as follows:
> >
> > NetmaskGroup* oldAllowFrom = t_allowFrom;
> > NetmaskGroup* allowFrom = new NetmaskGroup;
>
> (gdb) run
> Starting program: /home/stephane/Programmation/DNS/pdns-recursor-3.2/pdns_recursor
> May 26 10:59:56 PowerDNS recursor 3.2 (C) 2001-2010 PowerDNS.COM BV (May 26 2010, 10:58:27, gcc 4.1.3 20080704 prerelease (NetBSD nb2 20081120)) starting up
> May 26 10:59:56 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 26 10:59:56 Operating in 32 bits mode
> May 26 10:59:56 Reading random entropy from '/dev/urandom'
>
> Program received signal SIGSEGV, Segmentation fault.
> parseACLs () at pdns_recursor.cc:1508
> 1508 NetmaskGroup* oldAllowFrom = t_allowFrom;
We could probably boil this issue down to a tiny testcase that would crash
on NetBSD. This could then lead to a bugreport to NetBSD.
Can you try to compile this (g++ t.cc -o t):
#include <stdio.h>
class Bogo
{
public:
explicit Bogo(char a)
{
d_a = a;
}
char d_a;
};
__thread Bogo* t_a;
int main()
{
t_a = new Bogo('a');
Bogo* b = t_a;
printf("%c\n", b->d_a);
}
It is unlikely that PowerDNS will remove the __thread variables since they
work very well on all other relevant platforms ;-(
Bert
More information about the Pdns-users
mailing list