Re: dst cache overflow

kuznet@ms2.inr.ac.ru
Fri, 14 Jan 2000 20:39:06 +0300 (MSK)


Hello!

> FIN-WAIT-2?
>
> I saw LAST-ACK sockets in the thread and I looked for them.
>
> Please explain why you think it is a noop.

static inline void tcp_check_fin_timer(struct sock *sk)
{
if (sk->state == TCP_FIN_WAIT2 && !sk->timer.prev)
tcp_reset_msl_timer(sk, TIME_CLOSE, sysctl_tcp_fin_timeout);
}

See? fin timer is started only in FIN-WAIT-2.

> Now if there were fin-wait-2 and other sockets with no timers too
> that would be another bug.

Idle sockets, not closed by user, have no timer (not counting optional
SO_KEEPALIVE), because it is useless. Particularly, socket in FIN-WAIT-2
is held infinitely until user close it. In any state, when socket has some
data to send (f.e. LAST_ACK), either retransmit or probe timer is active.
In this case (when corking locked FIN) probe timer must be active, but
I suspect it also disappeared and this really will be bug.

Alexey

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