Re: BIND hangs with 2.6.14

From: Steinar H. Gunderson
Date: Sun Oct 30 2005 - 06:54:26 EST


On Sun, Oct 30, 2005 at 12:45:38PM +0100, bert hubert wrote:
> Check if the address passed, 0x561329b0, is very different from addresses
> passed during regular operations. The error the kernel returns basically
> says that this address is bogus, which it might be, but if more or less the
> same address worked previously chances are that the kernel is confused

Yes, I know what EFAULT means. The interesting part is that I can find one
single call to recvmsg() in the UNIX part of BIND, and there the argument is
on the stack...

strace doesn't show the address except when something fails, but these are
the distinct calls to recvmsg with given addresses (sorted):

[pid 13365] recvmsg(20, 0x56131f60, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(22, 0x56131f60, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(22, 0x56132980, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(22, 0x561329b0, 0) = -1 EFAULT (Bad address)
[pid 13365] recvmsg(23, 0x56131ef0, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(23, 0x56132540, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(23, 0x56132870, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(23, 0x561328a0, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(23, 0x56132940, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(23, 0x561329b0, 0) = -1 ECONNRESET (Connection reset by peer)
[pid 13365] recvmsg(26, 0x56132910, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(28, 0x561324f0, 0) = -1 EFAULT (Bad address)
[pid 13365] recvmsg(28, 0x56132840, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 13365] recvmsg(28, 0x56132840, 0) = -1 EFAULT (Bad address)
[pid 13365] recvmsg(29, 0x56132840, 0) = -1 EAGAIN (Resource temporarily unavailable)

Note that there's multiple EFAULTs in there, and some even go against an
address that was valid at some point... I think there's something fishy in
here.

/* Steinar */
--
Homepage: http://www.sesse.net/
-
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/