bind-9.4.0 bug, assertion failed, signed zone

Evan Hunt Evan_Hunt at isc.org
Sun Apr 29 02:53:58 UTC 2007


Thank you for the report, I'm looking into it.

BTW, you can send bug reports to bind9-bugs at isc.org, with a
considerably smaller distribution than bind-users.

On Sat, Apr 28, 2007 at 09:22:22PM -0400, Shumon Huque wrote:
> I think I've encountered a bug in bind-9.4.0. I can reliably get it to
> abort with an assertion failure by querying for certain records in a
> signed zone. syslog reports:
> 
>   named[14551]: db.c:814: REQUIRE(dns_db_iszone(db) == isc_boolean_true) failed
>   named[14551]: exiting (due to assertion failure)
> 
> The zone passes consistency checks with named-checkzone. The problem 
> seems to be related to recursive queries for a delegation record similar
> to:
> 
>   subzone.example1.com	IN NS blah.example2.com
> 
> The assertion failure happens when I first issue a recursive query for
> "subzone1.example.com NS" (causing named to recurse for the A record to
> insert in the additional section), followed by a recursive query for 
> subzone1.example.com RRSIG. The name has one RRSIG covering it's NSEC RR.
> The sequence of queries was generated by a zone walking program.
> 
> No failure happens if I issue non-recursive queries, or if I issue
> recursive queries from clients that are not allowed to cause recursion
> (eg. by not matching the allow-query-cache and allow-recursion ACLs).
> 
> I am hesitant to post the actual records that cause the problem on the 
> list, because arbitrary clients might be able to crash my nameserver.
> But I'd be happy to provide them (and the zone contents) via e-mail to 
> anyone willing to look into the problem.
> 
> A stack backtrace shows the following:
> 
>   [1] __lwp_kill(0x0, 0x6, 0x0, 0xff03c000, 0x56f95c, 0x56f964), at 0xff020218
>   [2] raise(0x6, 0x0, 0xfef1e8d8, 0x56f988, 0x56f98c, 0x0), at 0xfefd0c80
>   [3] abort(0x582e68, 0x56ac60, 0x566460, 0xfffffffb, 0x484fc4, 0x49cadc), at 0xfefb6e98
> =>[4] assertion_failed(file = 0x49cadc "db.c", line = 814, type = isc_assertiontype_require, cond = 0x49cae4 "dns_db_iszone(db) == isc_boolean_true"), line 159 in "main.c"
>   [5] dns_db_getoriginnode(db = 0x8d4ee0, nodep = 0xfef1ecd4), line 814 in "db.c"
>   [6] query_addsoa(client = 0x71eb90, db = 0x8d4ee0, version = (nil), zero_ttl = isc_boolean_false), line 2038 in "query.c"
>   [7] query_find(client = 0x71eb90, event = (nil), qtype = 46U), line 4221 in "query.c"
>   [8] ns_query_start(client = 0x71eb90), line 4583 in "query.c"
>   [9] client_request(task = 0x59d5a8, event = 0x722c80), line 1741 in "client.c"
>   [10] dispatch(manager = 0x589ec0), line 867 in "task.c"
>   [11] run(uap = 0x589ec0), line 1010 in "task.c"
> 
> Thanks for any help!
> --Shumon.

-- 
Evan Hunt -- evan_hunt at isc.org
Internet Systems Consortium, Inc.



More information about the bind-users mailing list