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. >