--- Begin Message ---
Package: libc6
Version: 2.7-10
Severity: normal
I noticed that when I tried pinging kalus.dk (which does not have
reverse DNS at the time of writing), ping would only send a packet
every 5 seconds.
R@h ~> host kalus.dk
kalus.dk has address 89.233.27.15
kalus.dk mail is handled by 10 mail.kalus.dk.
R@h ~> host 89.233.27.15
Host 15.27.233.89.in-addr.arpa. not found: 3(NXDOMAIN)
R@h ~> ping kalus.dk
PING kalus.dk (89.233.27.15) 56(84) bytes of data.
[5 second pause]
64 bytes from 89.233.27.15: icmp_seq=1 ttl=56 time=6.21 ms
[5 second pause]
64 bytes from 89.233.27.15: icmp_seq=2 ttl=56 time=5.89 ms
[5 second pause]
64 bytes from 89.233.27.15: icmp_seq=3 ttl=56 time=5.98 ms
[5 second pause]
64 bytes from 89.233.27.15: icmp_seq=4 ttl=56 time=4.48 ms
I tracked it down to the function call char *pr_addr in ping.c, when calling gethostbyaddr() :
/* pr_addr -- Return an ascii host address as a dotted quad and optionally with a hostname. */
char *pr_addr(__u32 addr) {
struct hostent *hp;
[...]
hp = gethostbyaddr((char *)&addr, 4, AF_INET);
[...]
}
I see no reason why it should take 5 seconds to find out that reverse DNS is not available, when the "host" command returns the answer immediately.
Doing a strace I get (selected parts of trace):
stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=131, ...}) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("83.221.148.2")}, 28) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
poll([{fd=4, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1
sendto(4, "\t,\1\0\0\1\0\0\0\0\0\0\00215\00227\003233\00289\7in-a"..., 43, MSG_NOSIGNAL, NULL, 0) = 43
poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
ioctl(4, FIONREAD, [103]) = 0
recvfrom(4, "\t,\201\203\0\1\0\0\0\1\0\0\00215\00227\003233\00289\7"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("83.221.148.2")}, [16]) = 103
close(4) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afcdfb72000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-ADDRESS 89.233.27.15\n", 29) = 29
read(4,
[***Here there is a 5 second wait***]
"-15 Timeout reached\n", 1024) = 20
close(4) = 0
I noted the
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
Which seems suspecious.
Regards, Thue
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.24-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6 depends on:
ii libgcc1 1:4.3.1-2 GCC support library
libc6 recommends no packages.
-- debconf information:
* glibc/upgrade: true
glibc/restart-failed:
* glibc/restart-services: openbsd-inetd exim4 cupsys cron atd
--- End Message ---
--- Begin Message ---
On Sat, Jul 12, 2008 at 08:04:27PM +0200, Thue Janus Kristensen wrote:
> I investigated further, and this is arguably not a bug. Please close it.
Closing it with this mail.
> Regards, Thue
>
> On Sat, Jul 12, 2008 at 3:17 PM, Thue Janus Kristensen <thuejk@gmail.com>
> wrote:
>
> > Yes - reading the trace closer it is obviously an avahi bug.
> >
> > Regards, Thue
> >
> > On Sat, Jul 12, 2008 at 3:12 PM, Stephen Gran <sgran@debian.org> wrote:
> >
> >> This one time, at band camp, Thue Janus Kristensen said:
> >> > I noticed that when I tried pinging kalus.dk (which does not have
> >> > reverse DNS at the time of writing), ping would only send a packet
> >> > every 5 seconds.
> >> >
> >> > connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"},
> >> 110) = 0
> >> > write(4, "RESOLVE-ADDRESS 89.233.27.15\n", 29) = 29
> >> > read(4,
> >> >
> >> > [***Here there is a 5 second wait***]
> >> >
> >> > "-15 Timeout reached\n", 1024) = 20
> >> > close(4) = 0
> >>
> >> Not that glibc doesn't have similar problems, but surely that's an avahi
> >> bug?
> >> --
> >> -----------------------------------------------------------------
> >> | ,''`. Stephen Gran |
> >> | : :' : sgran@debian.org |
> >> | `. `' Debian user, admin, and developer |
> >> | `- http://www.debian.org |
> >> -----------------------------------------------------------------
> >>
> >> -----BEGIN PGP SIGNATURE-----
> >> Version: GnuPG v1.4.6 (GNU/Linux)
> >>
> >> iD8DBQFIeK3MSYIMHOpZA44RAi50AJ9zsnX17sRcT1inG92VuFXFAUebIQCgxP6A
> >> U47EBFj4aH7Fbt1Lofe4lQw=
> >> =Xkeg
> >> -----END PGP SIGNATURE-----
> >>
> >>
> >
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
--- End Message ---