[avahi] problem with nss_mdns4 doing long timesouts looking up
dotted decimals
Norman Ramsey
nr at eecs.harvard.edu
Sat Mar 10 09:20:20 PST 2007
With a recent update, it now takes me 10 or 15 seconds to do any opeation
involving ssh. Using strace, I believe I've tracked the problem
to avahi's lair. Here's a fragment of an strace: the NSS opens
libness_mdns4, which connects to an avahi-daemon socket and asks it to
resolve a dotted-decimal address. It takes 5 seconds to time out
(i.e., it takes 5 seconds for the read() to complete). For reasons I
don't understand, ssh does this lookup *twice* to make a connection.
Result: every little remote cvs operation comes with a 10-second
delay. This is driving me crazy; can anyone think of a workaround?
0.000028 open("/lib/libnss_mdns4.so.2", O_RDONLY) = 5
0.000029 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\t\0\000"..., 512) = 512
0.000048 fstat64(5, {st_mode=S_IFREG|0644, st_size=7208, ...}) = 0
0.000049 mmap2(NULL, 10164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0xb7a70000
0.000034 mmap2(0xb7a72000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x1) = 0xb7a72000
0.000053 close(5) = 0
0.000074 socket(PF_FILE, SOCK_STREAM, 0) = 5
0.000042 fcntl64(5, F_GETFD) = 0
0.000022 fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
0.000038 connect(5, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
0.000108 fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
0.000029 fstat64(5, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
0.000042 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7a6f000
0.000037 _llseek(5, 0, 0xbf8b0dd8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
0.000063 write(5, "RESOLVE-ADDRESS 140.247.60.247\n", 31) = 31
0.000151 read(5, "-15 Timeout reached\n", 1024) = 20
5.002519 close(5) = 0
More information about my system:
/etc/nsswitch.conf says:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
I'm running Debian, which has this to say about versions:
: nr at curlycoat 10212 ; dpkg -s libnss-mdns
Package: libnss-mdns
Status: install ok installed
Priority: optional
Section: admin
Installed-Size: 120
Maintainer: Anand Kumria <wildfire at progsoc.org>
Architecture: i386
Source: nss-mdns
Version: 0.9-0.2
Depends: libc6 (>= 2.3.6-6), base-files (>= 3.1.10), perl,
avahi-daemon (>= 0.6.16-1)
Suggests: avahi-autoipd | zeroconf
Description: NSS module for Multicast DNS name resolution
nss-mdns is a plugin for the GNU Name Service Switch (NSS) functionality
of the GNU C Library (glibc) providing host name resolution via Multicast
DNS (using Zeroconf, aka Apple Bonjour / Apple Rendezvous ), effectively
allowing name resolution by common Unix/Linux programs in the ad-hoc mDNS
domain .local.
Package: avahi-daemon
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 352
Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers at lists.alioth.debian.org>
Architecture: i386
Source: avahi
Version: 0.6.16-2
Depends: libavahi-common3, libavahi-core4, libc6 (>= 2.3.6-6), libcap1, libdaemon0, libdbus-1-3 (>= 0.94), libexpat1 (>= 1.95.8), adduser, dbus (>= 0.60)
Recommends: libnss-mdns
Suggests: avahi-autoipd
Conflicts: mdnsresponder
Conffiles:
/etc/network/if-up.d/avahi-daemon 452d35fa8a17091f748aa6c1efa79967
/etc/avahi/hosts 0d3e0f267e7e9dc29bd4472e9a531661
/etc/avahi/avahi-daemon.conf 68d55e401a5d00a93b2cb43d5586bcfc
/etc/default/avahi-daemon ce04a82b0303fa1cf9f74c4740c8f4ee
/etc/init.d/avahi-daemon 12cfb3c66930893a49d1cf5b19ee151f
/etc/dbus-1/system.d/avahi-dbus.conf 8da3bce2b76ee263115202c7cace9e2b
/etc/resolvconf/update-libc.d/avahi-daemon 32a12dd375563a33cf476f009e40400c
Description: Avahi mDNS/DNS-SD daemon
Avahi is a fully LGPL framework for Multicast DNS Service Discovery.
It allows programs to publish and discover services and hosts
running on a local network with no specific configuration. For
example you can plug into a network and instantly find printers to
print to, files to look at and people to talk to.
.
This package contains the Avahi Daemon which represents your machine
on the network and allows other applications to publish and resolve
mDNS/DNS-SD records.
More information about the avahi
mailing list