Re: TCP connection closed without FIN or RST
From: Eric Dumazet <hidden>
Date: 2017-11-01 23:07:06
On Wed, 2017-11-01 at 22:22 +0000, Vitaly Davidovich wrote:
Eric,
Yes I agree. However the thing I’m still puzzled about is the client application is not reading/draining the recvq - ok, the client tcp stack should start advertising a 0 window size. Does a 0 window size count against the tcp_retries2? Is that what you were alluding to in your first reply?
Every time we receive an (valid) ACK, with a win 0 or not, the counter of attempts is cleared, given the opportunity for the sender to send 15 more probes.
If it *does* count towards the retries limit then a RST doesn’t seem like a bad idea. The client is responding with segments but the user app there just isn’t draining the data. Presumably that RST has a good chance of reaching the client and then unblocking the read() there with a peer reset error. Or am I missing something? If it doesn’t count towards the limit then I need to figure out why the 0 window size segments weren’t being sent by the client.
Yes please :)
I will try to double check that the client was indeed advertising 0 window size. There’s nothing special about that machine - it’s a 4.1.35 kernel as well. I wouldn’t expect the tcp stack there to be unresponsive just because the user app is sleeping.