Kernel 2.6.14 and old versions of traceroute

From: David R
Date: Mon Oct 31 2005 - 14:31:30 EST


I've noticed that old versions of traceroute no longer work properly
with the latest kernel. 2.6.13.4 is OK. I've done a bit of strace and am
posting the differences here. These are from a 64 bit kernel using
traceroute 0.6.2 as shipped with most versions of SuSE. I have confirmed
that the same problem is present in a 32 bit kernel on a different
machine. A later traceroute 1.4a12 works properly.

2.6.13.4

poll([{fd=6, events=POLLERR, revents=POLLERR}, {fd=3, events=POLLERR},
{fd=4, events=POLLERR}, {fd=5, events=POLLERR}], 4, 1) = 1
recvmsg(6, {msg_name(16)={sa_family=AF_INET, sin_port=htons(33443),
sin_addr=inet_addr("69.10.132.115")}, msg_iov(0)=[], msg_controllen=80,
{cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...},
msg_flags=MSG_ERRQUEUE}, MSG_ERRQUEUE) = 0


2.6.14
poll([{fd=3, events=POLLERR, revents=POLLERR}, {fd=4, events=POLLERR},
{fd=5, events=POLLERR}, {fd=6, events=POLLERR}, {fd=7, events=POLLERR},
{fd=8, events=POLLERR}], 6, 1) = 1
recvmsg(3, 0x7fffffa30960, MSG_ERRQUEUE) = -1 EAGAIN (Resource
temporarily unavailable)
....
....
poll([{fd=3, events=POLLERR, revents=POLLERR}, {fd=4, events=POLLERR,
revents=POLLERR}, {fd=5, events=POLLERR}, {fd=6, events=POLLERR}, {fd=7,
events=POLLERR}, {fd=8, events=POLLERR}, {fd=9, events=POLLERR}], 7, 1) = 2
recvmsg(3, 0x7fffffa30960, MSG_ERRQUEUE) = -1 EAGAIN (Resource
temporarily unavailable)
recvmsg(4, 0x7fffffa30960, MSG_ERRQUEUE) = -1 EFAULT (Bad address)

I'm up for more diagnostics if necessary.

Cheers
David

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/