More envelope info on "Socket destroy delayed"

Tom May (ftom@netcom.com)
Mon, 27 May 1996 17:40:16 -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 loops 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 1 to 3 times
through the loop. Looks like some sort of timer race condition thing.
Which still wouldn't explain why I can't connect to samba from my NT
machine with kernels that print the "Socket delay destroyed" message.

Tom.