BIND DLZ funnies and Segfaults

Adam Tkac atkac at redhat.com
Thu Oct 18 08:30:50 UTC 2007


On Wed, Oct 17, 2007 at 12:58:16PM +0200, Kristian Larsson wrote:
> Hello all!
> 
> I'm a long time BIND user though quite new with
> this DLZ deal. I've been running a BIND+DLZ+MySQL
> instance for a short time. Most things are working
> as expected except for the actual DB connection.
> It would seem that the DB connection times out
> after a "couple of hours" of inactivity. If I ask
> named questions continuosly this isn't a problem
> but if I don't for a few hours then it dies and
> all that seems to remedy the situation is a
> restart of named. I haven't had the time to
> measure how much inactivity it actually takes, but
> leaving it overnight always results in
> disconnection. 
> So I talked to a collegue who has been fiddling
> around with this for a bit. He had chosen the
> PostgreSQL path as that was what he was using. He
> did not see the disconnection problems with
> postgres although he had also setup a small test
> with MySQL and he could confirm my findings.
> I was also told that the Postgres driver would
> perform better due to a better implementation with
> threading and all. This led me to recompile my
> BIND with PostgreSQL support and try it out.
> So far, this is what I've got:
> 
> mcore1 named # ./named -c /etc/bind/named.conf -g -d 5 
> 17-Oct-2007 12:49:21.308 starting BIND 9.4.2rc1 -c /etc/bind/named.conf -g -d 5
> 17-Oct-2007 12:49:21.309 Registering DLZ postgres driver.
> 17-Oct-2007 12:49:21.309 Registering SDLZ driver 'postgres'
> 17-Oct-2007 12:49:21.309 Registering DLZ driver 'postgres'
> 17-Oct-2007 12:49:21.310 loading configuration from '/etc/bind/named.conf'
> 17-Oct-2007 12:49:21.311 set maximum stack size to -1: success
> 17-Oct-2007 12:49:21.311 set maximum data size to -1: success
> 17-Oct-2007 12:49:21.311 set maximum core size to -1: success
> 17-Oct-2007 12:49:21.311 set maximum open files to 1024: success
> 17-Oct-2007 12:49:21.311 listening on IPv4 interface lo, 127.0.0.1#53
> 17-Oct-2007 12:49:21.311 clientmgr @0x2b8716ce01c8: create
> 17-Oct-2007 12:49:21.312 clientmgr @0x2b8716ce01c8: createclients
> 17-Oct-2007 12:49:21.312 clientmgr @0x2b8716ce01c8: create new
> 17-Oct-2007 12:49:21.312 client @0x6ba360: create
> 17-Oct-2007 12:49:21.312 clientmgr @0x2b8716ce01c8: createclients
> 17-Oct-2007 12:49:21.312 clientmgr @0x2b8716ce01c8: create new
> 17-Oct-2007 12:49:21.312 client @0x6bb850: create
> 17-Oct-2007 12:49:21.312 Loading 'postgres zone' using driver postgres
> 17-Oct-2007 12:49:21.312 Loading SDLZ driver.
> 17-Oct-2007 12:49:21.312 Postgres driver running single threaded
> 17-Oct-2007 12:49:21.312 Postgres driver created database instance object.
> Segmentation fault (core dumped)
> mcore1 named # 
> 
> My named.conf is pretty straight-forward:
> ----------------------------------
> options {
> 	directory       "/var/cache/bind";
> 	listen-on       { 127.0.0.1; };
> 	recursion no;
> };
> 
> dlz "postgres zone" {
>         database "postgres 1
>         {host=localhost port=5432 dbname=dns user=bind pass=230casdasd3}
>         {select zone from dns_records where zone = '%zone%'}
>         {select ttl, type, mx_priority, case when lower(type)='txt' then '\"'
>                 || data || '\"' when lower(type)='soa' then data || ' ' || resp_person || ' '
>                 || serial || ' ' || refresh || ' ' || retry || ' ' || expire || ' ' || minimum
>                 else data end from dns_records where zone = '%zone%' and host = '%record%'}";
> };
> 
> ----------------------------------
> 
> The only difference I can see between this and 
> the machine that my collegue (successfully) is
> using is that I'm on a amd64 (Opteron 248) 
> while he is on a Intel. Could this have any
> influence ?

Maybe. Especially when one machine is 64bit and other is 32bit

> Where should I start looking or what more
> information do I need to provide for
> troubleshooting?

Looks like a bug somewhere in DLZ postgres module. Best should be fill a
bug to bind9-bugs at isc.org (if you have pure BIND) or to your OS vendor.
Core dump is usually enough information.

Adam



More information about the bind-users mailing list