Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Assertion debug information

10 views
Skip to first unread message

David Ford

unread,
Aug 1, 2008, 11:24:39 PM8/1/08
to
01-Aug-2008 20:23:22.079 zone.c:2514: REQUIRE((((source) != ((void *)0))
&& (((const isc__magic_t *)(source))->magic == ((('Z') << 24 | ('O') <<
16 | ('N') << 8 | ('E')))))) failed
01-Aug-2008 20:23:22.080 exiting (due to assertion failure)


Suddenly today named is crashing (assert exit) frequently. BIND
9.5.0-p1 is NOT compiled with threads. Where is magic getting set from
and why might it not be 'ZONE' (0x5a4f4e45)?

lines leading up to the crash:


01-Aug-2008 20:23:12.867 too many timeouts resolving
'10.225.127.203.in-addr.arpa/PTR' (in '127.203.in-addr.arpa'?):
disabling EDNS
01-Aug-2008 20:23:14.393 client 127.0.0.1#53798: view internal-in:
query: 10.225.127.203.in-addr.arpa IN PTR +
01-Aug-2008 20:23:14.436 createfetch: 10.225.127.203.in-addr.arpa PTR
01-Aug-2008 20:23:14.868 too many timeouts resolving
'10.225.127.203.in-addr.arpa/PTR' (in '127.203.in-addr.arpa'?):
disabling EDNS
01-Aug-2008 20:23:18.131 client 72.34.249.230#51292: view internal-in:
query: 176.11.135.125.in-addr.arpa IN PTR +
01-Aug-2008 20:23:18.172 createfetch: 176.11.135.125.in-addr.arpa PTR
01-Aug-2008 20:23:18.869 too many timeouts resolving
'10.225.127.203.in-addr.arpa/PTR' (in '127.203.in-addr.arpa'?):
disabling EDNS
01-Aug-2008 20:23:21.600 client 217.70.177.40#32785: view external-in:
query: itys.net IN SOA -E
01-Aug-2008 20:23:22.011 client 217.70.177.40#46068: view external-in:
query: itys.net IN AXFR -
01-Aug-2008 20:23:22.079 zone.c:2514: REQUIRE((((source) != ((void *)0))
&& (((const isc__magic_t *)(source))->magic == ((('Z') << 24 | ('O') <<
16 | ('N') << 8 | ('E')))))) failed
01-Aug-2008 20:23:22.080 exiting (due to assertion failure)

It looks like it's related to a zone transfer request (which is a
legitimate and approved request).

I use DLZ/pg, and I hope the following is useful information:

dlz "postgres zone" {
database "postgres 2
{host=localhost dbname=*** user=*** password=***}
{SELECT 'TRUE' FROM canonical WHERE lower(content) =
lower('%zone%') limit 1}
{SELECT ttl, type, priority, data FROM record, canonical WHERE
lower(content) = lower('%zone%') AND host = '%record%' AND zone = domain}
{}
{SELECT ttl, type, host, priority, data FROM record, canonical
WHERE zone = domain AND lower(content) = lower('%zone%')}
{SELECT 'TRUE' FROM xfr, canonical WHERE zone = domain AND
lower(content) = lower('%zone%') AND client = inet '%client%'}";
};


# SELECT 'TRUE' FROM canonical WHERE lower(content) = lower('itys.net')
limit 1;
?column?
----------
TRUE


# SELECT host, zone, ttl, type, priority, data FROM record, canonical
WHERE lower(content) = lower('itys.net') AND zone = domain ORDER BY
type DESC,data;
host | zone | ttl | type | priority
| data
-----------+------+-------+------+----------+-----------------------------------------------------------------------------
@ | 2 | 21600 | TXT | | "v=spf1 a:itys.net mx ptr
?all"
@ | 2 | 21600 | SOA | | ranger.blue-labs.org.
mjharmon.gmail.com. 1217217996 21600 3600 604800 3600
@ | 2 | 21600 | NS | | colt.blue-labs.org.
@ | 2 | 21600 | NS | | ns6.gandi.net.
@ | 2 | 21600 | NS | | ranger.blue-labs.org.
@ | 2 | 21600 | MX | 10 | mail.itys.net.
localhost | 2 | 21600 | A | | 127.0.0.1
lrv | 2 | 21600 | A | | 127.0.0.1
lrv-test | 2 | 21600 | A | | 198.106.134.21
ns.tunnel | 2 | 21600 | A | | 207.145.202.29
nes | 2 | 21600 | A | | 64.74.153.123
www | 2 | 21600 | A | | 66.214.255.78
canon | 2 | 21600 | A | | 66.214.255.78
@ | 2 | 21600 | A | | 72.34.249.230
mail | 2 | 21600 | A | | 72.34.249.230
colt | 2 | 21600 | A | | 72.34.249.230
qed | 2 | 21600 | A | | 83.246.72.247
autoid | 2 | 21600 | A | | 83.246.72.247
jabber | 2 | 21600 | A | | 83.246.72.247


# SELECT 'TRUE' FROM xfr, canonical WHERE zone = domain AND
lower(content) = lower('itys.net') AND client = inet '217.70.177.40';
?column?
----------
TRUE


# select * from xfr where zone=2;
xid | zone | client
-----+------+------------------
1 | 2 | 217.70.177.40/32

-david

JINMEI Tatuya / 神明達哉

unread,
Aug 8, 2008, 8:09:26 PM8/8/08
to
At Fri, 01 Aug 2008 23:24:39 -0400,

David Ford <da...@blue-labs.org> wrote:
>
> 01-Aug-2008 20:23:22.079 zone.c:2514: REQUIRE((((source) != ((void *)0))
> && (((const isc__magic_t *)(source))->magic == ((('Z') << 24 | ('O') <<
> 16 | ('N') << 8 | ('E')))))) failed
> 01-Aug-2008 20:23:22.080 exiting (due to assertion failure)
>
> Suddenly today named is crashing (assert exit) frequently. BIND
> 9.5.0-p1 is NOT compiled with threads. Where is magic getting set from
> and why might it not be 'ZONE' (0x5a4f4e45)?

Please try the patch copied below (in case you're wondering, this is
not fixed in P2).

Index: xfrout.c
===================================================================
RCS file: /proj/cvs/prod/bind9/bin/named/xfrout.c,v
retrieving revision 1.128
diff -u -r1.128 xfrout.c
--- xfrout.c 3 Apr 2008 06:09:04 -0000 1.128
+++ xfrout.c 9 Aug 2008 00:02:30 -0000
@@ -1333,7 +1333,8 @@
xfr->zone = NULL;
xfr->db = NULL;
xfr->ver = NULL;
- dns_zone_attach(zone, &xfr->zone);
+ if (zone != NULL) /* zone will be NULL if it's DLZ */
+ dns_zone_attach(zone, &xfr->zone);
dns_db_attach(db, &xfr->db);
dns_db_attachversion(db, ver, &xfr->ver);
xfr->end_of_stream = ISC_FALSE;
@@ -1744,7 +1745,8 @@
sendstream(xfr);
} else {
/* End of zone transfer stream. */
- inc_stats(xfr->zone, dns_nsstatscounter_xfrdone);
+ if (xfr->zone != NULL)
+ inc_stats(xfr->zone, dns_nsstatscounter_xfrdone);
xfrout_log(xfr, ISC_LOG_INFO, "%s ended", xfr->mnemonic);
ns_client_next(xfr->client, ISC_R_SUCCESS);
xfrout_ctx_destroy(&xfr);


---
JINMEI, Tatuya
Internet Systems Consortium, Inc.

0 new messages