On Wed, 8 Oct 2003, Harald Welte wrote: > On Wed, Oct 08, 2003 at 12:18:17AM +0200, Willy Tarreau wrote: > > Fortunately, tcpdump showed to me that all stuck sessions had in common the > > fact that the server aborted them with an RST after the first FIN+ACK, so > > in CLOSE_WAIT. Others which were aborted with an RST just before or just after > > were destroyed without any problem. > > Ok, this sounds like a pretty clear case than. This bug has not been > found because replying with RST afer FIN+ACK seems a quite unusual > pattern. > > > /*rst*/ {sCL, sCL, sCL, sCL, sCL, sCL, sCL, sCL, sLA, sLI }, > > > > But the tcp_window_tracking patch changes this behaviour, I think because of > > a typo, since I see no other reason not to terminate a session upon RST : > > > > /* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sLI */ > > /*rst*/ { sIV, sCL, sCL, sCL, sCL, sIV, sCL, sCL, sCL, sIV }, > > yes, I totally agree with you. I'll apply your proposed patch to > patch-o-matic. If Jozsef disagrees, he can revert that change. I agree completely. > > BTW, is it normal that an RST received in TIME_WAIT state terminates the > > session ? I would have thought that we should keep it in TIME_WAIT anyway. > > again agreed. Jozsef, what do you think? It's normal, but highly unusual I think. (Were it an "optimization" of TCP?) Thank you very much the nice analysis and report. Best regards, Jozsef - E-mail : kadlec@xxxxxxxxxxxxxxxxx, kadlec@xxxxxxxxxxxxxxx PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt Address : KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary