Bind-9.4.0a5 + DLZ results in assertion failure on startup

Edward van der Jagt edward at caret.nl
Thu May 11 11:02:49 UTC 2006


On Thu, 11 May 2006 11:51:46 +0200, Her, Andre <andre.her at EDS.COM> wrote:

> I haven't looked at bind 9.4 yet, but your dz seems strange, are you
> using postgress or mysql ?
> Your messages below said mysql while you talk about postgress?
> Don't you have to create tables database users within Mysql before
> trying bind?
> Regards
>

I want to use Postgress, but tried mysql as well, to rule out a postgress
specific problem. Using postgres for dlz driver, results in exactly the
same error message as with the mysql dlz driver:

11-May-2006 12:11:15.414 starting BIND 9.4.0a5 -c  
/usr/local/etc/named.conf -f -g -d 1
11-May-2006 12:11:15.430 loading configuration from  
'/usr/local/etc/named.conf'
11-May-2006 12:11:15.431 listening on IPv4 interface lo, 127.0.0.1#53
11-May-2006 12:11:15.444 Loading 'test4.it' using driver postgres
11-May-2006 12:11:15.444 Postgres driver running single threaded
11-May-2006 12:11:15.469 command channel listening on 127.0.0.1#953
11-May-2006 12:11:15.469 command channel listening on ::1#953
11-May-2006 12:11:15.470 ignoring config file logging statement due to -g  
option
11-May-2006 12:11:15.470 resolver.c:6659: REQUIRE((((resolver) != ((void  
*)0)) && (((const isc__magic_t *)(resolver))->magic == ((('R') << 24 |  
('e') << 16 | ('s') << 8 | ('!')))))) failed
11-May-2006 12:11:15.470 exiting (due to assertion failure)
Aborted

As far as creation of tables etc (I've created them), as I said, I traced
the connections to the postgres server, and no SQL query at all was made.
I've used tcpdump/ethereal to see what is sent/received to the database.
Just an initial connection setup passes, but no SQL query, no table  
information,
etc. Also "-d 1" should show the queries DLZ makes. Logging shows no  
queries,
which confirms my tcpdump analysis.

I also tried a database on another machine, just to make sure it didn't  
connect
through a local socket/pipe/whatever instead of via IP.
Also, granting rights has been done, and the tcpdump shows connection  
success.
Besides, when authorization is wrong, DLZ gives a regular error (failed to  
connect).

That's why I think the problem is not in the database content, but in the
configuration.

Of course I could be totally wrong, but would like to know what I'm doing  
wrong
so I can get this working.

--

    Edward


> -----Original Message-----
> From: bind-users-bounce at isc.org [mailto:bind-users-bounce at isc.org] On
> Behalf Of Edward van der Jagt
> Sent: donderdag 11 mei 2006 10:58
> To: bind-users at isc.org
> Subject: Bind-9.4.0a5 + DLZ results in assertion failure on startup
>
> I just tried out the latest Bind release because I wanted the database
> connection to PostgreSQL. Compiling and running the Bind server (tiny
> test config) goes fine.
> However when I insert the dlz configuration into named.conf, whether
> using the Postgres or MySQL drivers, I get the same assertion error:
>
> 11-May-2006 10:32:57.449 starting BIND 9.4.0a5 -c
> /usr/local/etc/named.conf -f -g -d 1
> 11-May-2006 10:32:57.464 loading configuration from
> '/usr/local/etc/named.conf'
> 11-May-2006 10:32:57.466 listening on IPv4 interface lo, 127.0.0.1#53
> 11-May-2006 10:32:57.480 Loading 'test5.it' using driver mysql
> 11-May-2006 10:32:57.502 command channel listening on 127.0.0.1#953
> 11-May-2006 10:32:57.503 command channel listening on ::1#953
> 11-May-2006 10:32:57.503 ignoring config file logging statement due to
> -g option
> 11-May-2006 10:32:57.504 resolver.c:6659: REQUIRE((((resolver) != ((void
> *)0)) && (((const isc__magic_t *)(resolver))->magic == ((('R') << 24 |
> ('e') << 16 | ('s') << 8 | ('!')))))) failed
> 11-May-2006 10:32:57.520 exiting (due to assertion failure) Aborted
>
> I've examined the networkdata on the connection to Postgres, but find
> there are no queries done yet; only a connection is made. So the
> contents of my database, which I've only inserted some lines for
> testing, is not at fault.
> My guess therefore is that there is some other config error in
> named.conf which makes Bind abort execution.
> I've tried to search through the sources to find what is wrong but
> couldn't find any clear indication yet.
>
> Anyone got any ideas what is wrong ?
>
> Thanks.
>
> My named.conf :
> ------------------------------------------
> options {
> directory "/usr/local/var/lib/named";
> dump-file "/usr/local/var/log/named_dump.db";
> statistics-file "/usr/local/var/log/named.stats";
> listen-on-v6 { none; };
> listen-on { 127.0.0.1; };
> notify no;
> };
>
> view "internal" {
>    match-clients { 127.0.0.1; };
>    recursion yes;
>
>    # dlz configuration will be inserted here
>
>    zone "." in {
>    type hint;
>    file "root.hint";
>    };
>
>    zone "localhost" in {
>    type master;
>    file "localhost.zone";
>            allow-update { none; };
>    };
>
>    zone "0.0.127.in-addr.arpa" in {
>    type master;
>    file "127.0.0.zone";
>            allow-update { none; };
>    };
>
> };
>
> ------------------------------------------
>
> And my dlz configurations are these: (copied from bind-dlz sourceforge
> page)
> ------------------------------------------
> dlz "test4.it" {
>     database "postgres 1
>     {host=127.0.0.1 port=5432 dbname=bind user=edward}
>     {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%'}"; };
> ------------------------------------------
> dlz "test5.it" {
>     database "mysql
>     {host=localhost dbname=dns_data ssl=tRue}
>     {select zone from dns_records where zone = '%zone%'}
>     {select ttl, type, mx_priority, case when lower(type)='txt' then
> concat('\"', data, '\"')
>          when lower(type) = 'soa' then concat_ws(' ', data, resp_person,
> serial, refresh, retry, expire, minimum)
>          else data end from dns_records where zone = '%zone%' and host =
> '%record%'}"; };
> ------------------------------------------
>
>
>



-- 

   Edward



More information about the bind-users mailing list