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

Assertion debug information

4 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