> What really happens is:
>
> app calls connect()
> socket is set to SS_CONNECTING
> -> signal
> ICMP happens in between
> connect is restarted
> sees sk->err returns and clears error but does _not_ set SS_UNCONNECTED
> application retries connect
> inet_wait_for_connect (because the socket is still SYN_SENT)
> -> sleeps forever because no wake up happens and no error
> is set because it is already cleared.
>
> Here is the better fix which always clears SS_CONNECTING, I'm still
> waiting for Jason's feedback on this one. Seems the "fix" to move
> the tcp_set_state(TCP_CLOSE) out of the icmp error handler was worse
> medicine than the original problem.
Okay, the machine has been running for a whole day and a half now and
there is not a single stuck ftpd! So I think it is likely that this patch
did something positive in my instance.
> Now still to find the pkt_too_big to self and copied < acked problems
> Jason reported. Alexey, do you have a theory for the pkt_too_big to
> self?
I am still getting massive numbers of that message. The tcp_data message I
have not seen anymore which is odd, it was very frequent two days ago.
With the extra print outs that Andi asked for:
sending pkt_too_big to self totlen=1500,pmtu=576
sending pkt_too_big to self totlen=796,pmtu=296
sending pkt_too_big to self totlen=1500,pmtu=296
Thanks,
Jason
-
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/