Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • BIND BIND
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 532
    • Issues 532
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 101
    • Merge requests 101
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source Projects
  • BINDBIND
  • Issues
  • #3207

Closed
Open
Created Mar 14, 2022 by Petr Menšík@pemensikContributor

dig +nssearch org crashes when network is unreachable

Summary

dig -6 nssearch org crashes with assertion failure

BIND version used

BIND 9.18.0 (Stable Release) <id:>
running on Linux x86_64 5.16.12-200.fc35.x86_64 #1 SMP PREEMPT Wed Mar 2 19:06:17 UTC 2022
built by make with  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--localstatedir=/var' '--with-pic' '--disable-static' '--includedir=/usr/include/bind9' '--with-tuning=large' '--with-libidn2' '--with-maxminddb' '--with-gssapi=yes' '--with-lmdb=yes' '--with-json-c' '--enable-dnstap' '--with-cmocka' '--enable-fixed-rrset' '--enable-full-report' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CC=gcc' 'CFLAGS= -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' 'LT_SYS_LIBRARY_PATH=/usr/lib64:' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
compiled by GCC 11.2.1 20220127 (Red Hat 11.2.1-9)
compiled with OpenSSL version: OpenSSL 1.1.1l  FIPS 24 Aug 2021
linked to OpenSSL version: OpenSSL 1.1.1l  FIPS 24 Aug 2021
compiled with libuv version: 1.43.0
linked to libuv version: 1.44.1
compiled with libnghttp2 version: 1.45.1
linked to libnghttp2 version: 1.45.1
compiled with libxml2 version: 2.9.13
linked to libxml2 version: 20913
compiled with json-c version: 0.15
linked to json-c version: 0.15
compiled with zlib version: 1.2.11
linked to zlib version: 1.2.11
linked to maxminddb version: 1.6.0
compiled with protobuf-c version: 1.4.0
linked to protobuf-c version: 1.4.0
threads support is enabled

default paths:
  named configuration:  /etc/named.conf
  rndc configuration:   /etc/rndc.conf
  DNSSEC root key:      /etc/bind.keys
  nsupdate session key: /var/run/named/session.key
  named PID file:       /var/run/named/named.pid
  named lock file:      /var/run/named/named.lock
  geoip-directory:      /usr/share/GeoIP

Steps to reproduce

(How one can reproduce the issue - this is very important.)

  • have ipv6 local connectivity, but not with working default route to public internet
  • dig -6 +nssearch org

What is the current bug behavior?

../../../bin/dig/dighost.c:1651: REQUIRE(targetp != ((void *)0) && *targetp == ((void *)0)) failed, back trace
/lib64/libisc-9.18.0.so(+0x39ce3)[0x7ffff7a5ece3]
/lib64/libisc-9.18.0.so(isc_assertion_failed+0x10)[0x7ffff7a5e1d0]
/usr/bin/dig(+0x16e70)[0x55555556ae70]
/usr/bin/dig(+0xee4e)[0x555555562e4e]
/usr/bin/dig(+0x10001)[0x555555564001]
/lib64/libisc-9.18.0.so(isc__nm_async_readcb+0xb1)[0x7ffff7a4d381]
/lib64/libisc-9.18.0.so(isc__nm_readcb+0x9b)[0x7ffff7a4d4bb]
/lib64/libisc-9.18.0.so(+0x29a35)[0x7ffff7a4ea35]
/lib64/libuv.so.1(uv_run+0xce)[0x7ffff755f09e]
/lib64/libisc-9.18.0.so(+0x2d5be)[0x7ffff7a525be]
/lib64/libisc-9.18.0.so(isc__trampoline_run+0x1a)[0x7ffff7a858ba]
/lib64/libc.so.6(+0x8db1a)[0x7ffff760fb1a]
/lib64/libc.so.6(+0x112650)[0x7ffff7694650]

What is the expected correct behavior?

Should report error state or nothing at all.

Relevant configuration files

(Paste any relevant configuration files - please use code blocks (```) to format console output. If submitting the contents of your configuration file in a non-confidential Issue, it is advisable to obscure key secrets: this can be done automatically by using named-checkconf -px.)

Relevant logs and/or screenshots

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff76118f3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff75c46a6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff75ae7d3 in __GI_abort () at abort.c:79
#4  0x00007ffff7a5e1d5 in isc_assertion_failed (file=file@entry=0x55555556c134 "../../../bin/dig/dighost.c", line=line@entry=1651, 
    type=type@entry=isc_assertiontype_require, cond=cond@entry=0x5555555712c0 "targetp != ((void *)0) && *targetp == ((void *)0)")
    at ../../../lib/isc/assertions.c:50
#5  0x000055555556ae70 in _query_attach.constprop.0 (source=0x7ffff63e3c40, targetp=0x7ffff5128d68, line=<optimized out>, 
    file=0x55555556c134 "../../../bin/dig/dighost.c") at ../../../bin/dig/dighost.c:1651
#6  0x0000555555562e4e in start_udp (query=<optimized out>) at ../../../bin/dig/dighost.c:2936
#7  0x0000555555564001 in recv_done (handle=0x7ffff63e0180, eresult=ISC_R_TIMEDOUT, region=0x7ffff5dfd290, arg=<optimized out>)
    at ../../../bin/dig/dighost.c:3607
#8  0x00007ffff7a4d381 in isc__nm_async_readcb (worker=worker@entry=0x0, ev0=ev0@entry=0x7ffff5dfd2d0) at ../../../lib/isc/netmgr/netmgr.c:2798
#9  0x00007ffff7a4d4bb in isc__nm_readcb (sock=sock@entry=0x7ffff6395e00, uvreq=<optimized out>, eresult=eresult@entry=ISC_R_TIMEDOUT)
    at ../../../lib/isc/netmgr/netmgr.c:2771
#10 0x00007ffff7a4ea35 in isc__nmsocket_readtimeout_cb (timer=0x7ffff6396230) at ../../../lib/isc/netmgr/netmgr.c:2087
#11 0x00007ffff755f09e in uv__run_timers (loop=0x7ffff622f010) at src/timer.c:178
#12 uv_run (loop=loop@entry=0x7ffff622f010, mode=mode@entry=UV_RUN_DEFAULT) at src/unix/core.c:382
#13 0x00007ffff7a525be in nm_thread (worker0=0x7ffff622f000) at ../../../lib/isc/netmgr/netmgr.c:691
#14 0x00007ffff7a858ba in isc__trampoline_run (arg=0x555555594f70) at ../../../lib/isc/trampoline.c:187
#15 0x00007ffff760fb1a in start_thread (arg=<optimized out>) at pthread_create.c:443
#16 0x00007ffff7694650 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
# {A}:{B} censors actual used range
# ping -6 -c 1 d0.org.afilias-nst.org.
PING d0.org.afilias-nst.org.(d0.org.afilias-nst.org (2001:500:f::1)) 56 data bytes
From 2620:52:{A}:{B}::3fc (2620:52:{A}:{B}::3fc) icmp_seq=1 Destination unreachable: Address unreachable

--- d0.org.afilias-nst.org. ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

Possible fixes

(If you can, link to the line of code that might be responsible for the problem.)

Assignee
Assign to
Time tracking