More envelope info on "Socket destroy delayed"

Tom May (ftom@netcom.com)
Mon, 27 May 1996 16:53:56 -0700


On my machine I'm getting the error when destroy_sock() is called from
udp_close(). I put some calls to printk in udp_close() -- it's coming
in with sk->wmem_alloc = 416. If I put some printks in a loop like
this:

static void udp_close(struct sock *sk, unsigned long timeout)
{
lock_sock(sk);
sk->state = TCP_CLOSE;
{
int i;
for (i = 0; i < 10; i++) {
printk ("udp_close %d: %d %d\n", i, sk->rmem_alloc,
sk->wmem_alloc);
}
}

then sk->wmem_alloc will magically be set to 0 after one or more times
through the loop. Looks like some sort of timer race condition thing.
Which still doesn't explain why I can't connect to samba from my NT
machine with kernels that print the "Socket delay destroyed" message.

Tom.