Assertion debug information

JINMEI Tatuya / 神明達哉 Jinmei_Tatuya at isc.org
Sat Aug 9 00:09:26 UTC 2008


At Fri, 01 Aug 2008 23:24:39 -0400,
David Ford <david at 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.


More information about the bind-users mailing list