dig problem in 9.8.1b2?

Tony Finch dot at dotat.at
Tue Jun 14 16:38:36 UTC 2011


Bill Owens <owens at nysernet.org> wrote:

> Working on a project related to TCP blocking on authoritative servers, I
> accidentally typed a command that caused an error in dig. It appears
> that combining '+nssearch' and '+tcp' flags triggers it, regardless of
> the server being used or the query:

I can reproduce this on FreeBSD-8.1 amd64. I have attached some debugging
output and here's a backtrace from gdb.

GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Core was generated by `dig'.
Program terminated with signal 6, Aborted.
Reading symbols from /lib/libcrypto.so.6...done.
Loaded symbols for /lib/libcrypto.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/libthr.so.3...done.
Loaded symbols for /lib/libthr.so.3
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x0000000800cd103c in thr_kill () from /lib/libc.so.7
[New Thread 80100aac0 (LWP 100698)]
[New Thread 80100ac80 (LWP 100693)]
[New Thread 80100ae40 (LWP 100294)]
[New Thread 8010041c0 (LWP 100296)]
(gdb) bt
#0  0x0000000800cd103c in thr_kill () from /lib/libc.so.7
#1  0x0000000800d6d1cb in abort () from /lib/libc.so.7
#2  0x000000000051b1af in isc_assertion_failed (file=Variable "file" is not available.) at assertions.c:58
#3  0x0000000000543315 in isc__socket_create (manager0=0x187c6, pf=2, type=0, socketp=0x5) at socket.c:2499
#4  0x000000000040af38 in send_udp (query=0x80103a888) at dighost.c:2528
#5  0x000000000040b2f8 in send_done (_task=Variable "_task" is not available.) at dighost.c:2325
#6  0x00000000005334b5 in run (uap=0x801027000) at task.c:1012
#7  0x0000000800b6c511 in pthread_getprio () from /lib/libthr.so.3
#8  0x0000000000000000 in ?? ()
Cannot access memory at address 0x7fffffbff000
(gdb)

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  http://dotat.at/
Northeast Rockall, Malin, Hebrides, Bailey: Easterly or southeasterly 3 or 4,
increasing 5 to 7, perhaps gale 8 later in Bailey. Moderate becoming rough.
Occasional rain. Moderate or poor.
-------------- next part --------------
main parsing @127.0.0.1
make_server(127.0.0.1)
main parsing +nss
main parsing +tcp
main parsing .
clone_lookup()
make_empty_lookup()
clone_server_list()
make_server(127.0.0.1)
looking up .
setup_system()
create_search_list()
ndots is 1.
copy_server_list()
make_server(127.0.0.1)
lock_lookup dighost.c:3597
success
start_lookup()
setup_lookup(0x8010e6008)
resetting lookup counter.
using root origin
recursive query
add_question()
starting to render the message
done rendering
create query 0x80102bde8 linked to lookup 0x8010e6008
do_lookup()
send_tcp_connect(0x80102bde8)
sockcount=1
bringup_timer()
have local timeout of 10
unlock_lookup dighost.c:3599
connect_done()
lock_lookup dighost.c:2793
success
launch_next_query()
recvcount=1
sending a request in launch_next_query
sendcount=1
unlock_lookup dighost.c:2852
lock_lookup dighost.c:2305
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup dighost.c:2334
tcp_length_done()
lock_lookup dighost.c:2652
success
recving with lookup=0x8010e6008, query=0x80102bde8
resubmitted recv request with length 688, recvcount=1
unlock_lookup dighost.c:2713
recv_done()
lock_lookup dighost.c:3034
success
recvcount=0
lookup=0x8010e6008, query=0x80102bde8
before parse starts
after parse
in NSSEARCH code
following up .
found NS set
found NS a.root-servers.net
requeue_lookup()
clone_lookup()
make_empty_lookup()
before insertion, init at 0x8010e6008 -> 0xffffffffffffffff, new at 0x80115a008 -> 0xffffffffffffffff
after insertion, init -> 0x8010e6008, new = 0x80115a008, new -> 0x0
cancel_lookup()
check_if_done()
list full
adding server a.root-servers.net
make_server(2001:503:ba3e::2:30)
make_server(198.41.0.4)
found NS set
found NS m.root-servers.net
adding server m.root-servers.net
make_server(2001:dc3::35)
make_server(202.12.27.33)
found NS set
found NS b.root-servers.net
adding server b.root-servers.net
make_server(192.228.79.201)
found NS set
found NS l.root-servers.net
adding server l.root-servers.net
make_server(2001:500:3::42)
make_server(199.7.83.42)
found NS set
found NS c.root-servers.net
adding server c.root-servers.net
make_server(192.33.4.12)
found NS set
found NS f.root-servers.net
adding server f.root-servers.net
make_server(2001:500:2f::f)
make_server(192.5.5.241)
found NS set
found NS d.root-servers.net
adding server d.root-servers.net
make_server(2001:500:2d::d)
make_server(128.8.10.90)
found NS set
found NS j.root-servers.net
adding server j.root-servers.net
make_server(2001:503:c27::2:30)
make_server(192.58.128.30)
found NS set
found NS h.root-servers.net
adding server h.root-servers.net
make_server(2001:500:1::803f:235)
make_server(128.63.2.53)
found NS set
found NS i.root-servers.net
adding server i.root-servers.net
make_server(2001:7fe::53)
make_server(192.36.148.17)
found NS set
found NS g.root-servers.net
adding server g.root-servers.net
make_server(192.112.36.4)
found NS set
found NS e.root-servers.net
adding server e.root-servers.net
make_server(192.203.230.10)
found NS set
found NS k.root-servers.net
adding server k.root-servers.net
make_server(2001:7fd::1)
make_server(193.0.14.129)
clear_query(0x80102bde8)
sockcount=0
check_next_lookup(0x8010e6008)
try_clear_lookup(0x8010e6008)
destroy
freeing server 0x80110f508 belonging to 0x8010e6008
start_lookup()
setup_lookup(0x80115a008)
using root origin
add_question()
starting to render the message
done rendering
create query 0x80102bde8 linked to lookup 0x80115a008
create query 0x80103a008 linked to lookup 0x80115a008
create query 0x80103a228 linked to lookup 0x80115a008
create query 0x80103a448 linked to lookup 0x80115a008
create query 0x80103a668 linked to lookup 0x80115a008
create query 0x80103a888 linked to lookup 0x80115a008
create query 0x80103aaa8 linked to lookup 0x80115a008
create query 0x80103acc8 linked to lookup 0x80115a008
create query 0x80103b008 linked to lookup 0x80115a008
create query 0x80103b228 linked to lookup 0x80115a008
create query 0x80103b448 linked to lookup 0x80115a008
create query 0x80103b668 linked to lookup 0x80115a008
create query 0x80103b888 linked to lookup 0x80115a008
create query 0x80103baa8 linked to lookup 0x80115a008
create query 0x80103bcc8 linked to lookup 0x80115a008
create query 0x80103c008 linked to lookup 0x80115a008
create query 0x80103c228 linked to lookup 0x80115a008
create query 0x80103c448 linked to lookup 0x80115a008
create query 0x80103c668 linked to lookup 0x80115a008
create query 0x80103c888 linked to lookup 0x80115a008
create query 0x80103caa8 linked to lookup 0x80115a008
create query 0x80103ccc8 linked to lookup 0x80115a008
do_lookup()
send_tcp_connect(0x80102bde8)
sockcount=1
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103a008)
sockcount=2
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103a228)
sockcount=3
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103a448)
sockcount=4
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103a668)
sockcount=5
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103a888)
sockcount=6
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103aaa8)
sockcount=7
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103acc8)
sockcount=8
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103b008)
sockcount=9
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103b228)
sockcount=10
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103b448)
sockcount=11
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103b668)
sockcount=12
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103b888)
sockcount=13
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103baa8)
sockcount=14
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103bcc8)
sockcount=15
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103c008)
sockcount=16
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103c228)
sockcount=17
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103c448)
sockcount=18
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103c668)
sockcount=19
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103c888)
sockcount=20
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103caa8)
sockcount=21
bringup_timer()
have local timeout of 1
sending next, since searching
send_tcp_connect(0x80103ccc8)
sockcount=22
bringup_timer()
have local timeout of 10
sending next, since searching
unlock_lookup dighost.c:3511
connect_done()
lock_lookup dighost.c:2793
success
launch_next_query()
recvcount=1
sending a request in launch_next_query
sendcount=1
unlock_lookup dighost.c:2852
connect_done()
lock_lookup dighost.c:2793
success
launch_next_query()
recvcount=2
sending a request in launch_next_query
sendcount=2
unlock_lookup dighost.c:2852
lock_lookup dighost.c:2305
success
send_done()
sendcount=1
sending next, since searching
send_udp(0x80103a888)
bringup_timer()
have local timeout of 1
working on lookup 0x80115a008, query 0x80103a888
socket.c:2499: REQUIRE(socketp != ((void *)0) && *socketp == ((void *)0)) failed, back trace
#0 0x51aff9 in ??
#1 0x51b1aa in ??
#2 0x543315 in ??
#3 0x40af38 in ??
#4 0x40b2f8 in ??
#5 0x5334b5 in ??
#6 0x800b6c511 in ??
#7 0x0 in ??


More information about the bind-workers mailing list