Description of problem: Command 'dig +topdown +trace +dnssec +sigchase +all -t DS freeipa.org' fails with assert. name.c:572: REQUIRE((((name2) != ((void *)0)) && (((const isc__magic_t *)(name2))->magic == ((('D') << 24 | ('N') << 16 | ('S') << 8 | ('n')))))) failed, back trace #0 0x3610c0f174 in ?? #1 0x3610c0f0da in ?? #2 0x361287a193 in ?? #3 0x40ea75 in ?? #4 0x4164ac in ?? #5 0x3610c30f36 in ?? #6 0x3611407c53 in ?? #7 0x36110f513d in ?? Aborted (core dumped) Version-Release number of selected component (if applicable): bind-9.9.3-3.P1.fc19.x86_64 How reproducible: always Steps to Reproduce: 1. run 'dig +topdown +trace +dnssec +sigchase +all -t DS freeipa.org' 2. 3. Actual results: dig fails Expected results: dig exits without error Additional info:
'dig +topdown +trace +sigchase -t DS freeipa.org' is enough to trigger the assert. Program received signal SIGABRT, Aborted. [Switching to Thread 0x7ffff7f81700 (LWP 10922)] 0x0000003611035a19 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) bt #0 0x0000003611035a19 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x0000003611037128 in __GI_abort () at abort.c:90 #2 0x0000003c3c00f0df in isc_assertion_failed (file=file@entry=0x3c3c57e8b2 "name.c", line=line@entry=572, type=type@entry=isc_assertiontype_require, cond=cond@entry=0x3c3c57edc0 "(((name2) != ((void *)0)) && (((const isc__magic_t *)(name2))->magic == ((('D') << 24 | ('N') << 16 | ('S') << 8 | ('n')))))") at assertions.c:58 #3 0x0000003c3c47a193 in dns_name_fullcompare (name1=<optimized out>, name2=0x7fffec193880, orderp=orderp@entry=0x7ffff7f7fe90, nlabelsp=nlabelsp@entry=0x7ffff7f7fe4c) at name.c:572 #4 0x000000000040ea75 in followup_lookup (msg=0x7ffff7f958f8, query=query@entry=0x7ffff7fa1018, section=section@entry=2) at dighost.c:1802 #5 0x00000000004164ac in recv_done (task=<optimized out>, event=0x7ffff7f93010) at dighost.c:3500 #6 0x0000003c3c030f36 in dispatch (manager=0x7ffff7f87010) at task.c:1116 #7 run (uap=0x7ffff7f87010) at task.c:1286 #8 0x0000003611407c53 in start_thread (arg=0x7ffff7f81700) at pthread_create.c:308 #9 0x00000036110f513d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
[ISC-Bugs #34663]
Upstrean has a fix. However they claim there are more bugs when using the +sigchase. https://source.isc.org/cgi-bin/gitweb.cgi?p=bind9.git;a=patch;h=7d891eaf911e5cab1f704615f8f1ef87c8716f46
I can confirm that the fix solved the ASSERT issue.
Fixed in bind-9.9.6-1.fc22. I'll most probably merge the 9.9.6 update also to F21 so it will be fixed there, too.