Date: Fri, 11 Jul 1997 17:35:04 -0700 From: Julian Elischer <julian@whistle.com> To: hackers@freebsd.org Subject: TCP bug in 2.2 Message-ID: <33C6D138.7D55368C@whistle.com>
next in thread | raw e-mail | index | archive | help
If I could borrow the ear of someone with more knowledge of TCP states than me.. We see the following in a kernel dated from around March 4 and from the logs it looks as if it's present in 2.2.2+ finger, (after a lot of iterations of the test) goes into a permanent wait reading from a socket. the socket is seen to be in FIN_WAIT_2 state after the finger proces is killed the socket STAYS in FIN_WAIT_2 state forever. from what I've read in tcp_input.c etc. This shouldn't happen. 2 problems: 1/ why doesn't finger wake up and return EOF? 2/ why doesn't the close() ofthe socket start the 2MSL timer? THere is obviosly a hole.. obviously (so->so_state & SS_CANTRCVMORE) is not true when tp->t_state = TCPS_FIN_WAIT_2; is executed, (tcp_input.c line 1414 in 2.2.2) and either tcp_usrclosed() is not being called during the socket closure for some reason, or the timer is being continually reset by something else. does any of you TCP sleuths have an idea of what migh tbe happenning? I will continue to research anyhow... julian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?33C6D138.7D55368C>