Bind-9.4.0a5 + DLZ results in assertion failure on startup *solved (kind a)*
Edward van der Jagt
edward at caret.nl
Thu May 11 12:23:18 UTC 2006
Had some unexpected time to kill, so I decided to go the hard way
and add debugging statements to the Bind code.
I finally traced the problem to these lines in bin/named/server.c (line
3300):
/*
* Adjust the listening interfaces in accordance with the source
* addresses specified in views and zones.
*/
if (isc_net_probeipv6() == ISC_R_SUCCESS)
adjust_interfaces(server, ns_g_mctx);
Now if I disable these 2 lines of code, named starts up just fine and does
its postgres queries the way it is supposed to. Leaving me with another
problem
that it apparently wants mx_priority to be a decimal dotted quad, instead
of just an
integer. But that is a different problem.
In conclusion the problem appears to be about IPv6, as the assertion
occured at
something with v6 in its name. However I had disabled IPv6 listening in
named.conf after the first occurence of the assertion.
IPv6 is present in the OS kernel and /sbin/ifconfig shows an IPv6 address.
Have I stumbled across a bug or is this still a user error (which should
then
be handled by a proper error message) ?
--
Edward
<SNIP>
>> 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