Bug 784 - TCP WWW connections seem to get stuck and never go away
Summary: TCP WWW connections seem to get stuck and never go away
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 1995-10-17 19:00 UTC by Alan Judge
Modified: 1995-11-11 17:44 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alan Judge 1995-10-17 19:00:01 UTC
	The machine wedged earlier today, having running out of
	mbuf clusters (which I'll need to increase anyway).

	Having a snoop around, it would seem that some WWW connections
	with data queued are not going away after a dialup user
	hangs up.

	For example:
f072fc00 tcp        0   5270  192.111.39.241.80  138.220.76.189.130 CLOSING
f075c300 tcp        0  16384  192.111.39.34.8000 193.120.254.57.165 LAST_ACK

	Eventually this fills all the mbufs and everything stops.

Fix: 

I've had a look at the sources and it would seem that keep alives
	have no effect here, as they are ignored if
		tp->t_state <= TCPS_CLOSE_WAIT

	However, from looking at the 2.1.0-951005-SNAP I see some
	interesting new code in tcp_timer.c.  Am I correct in
	thinking that the code that starts:
	       * Hack: if the peer is dead/unreachable, we do not
	       * time out if the window is closed.  After a full
	might fix the problem if pulled into my tcp_timers.c???
How-To-Repeat: 
	Run a popular web server :-)  I'm sure that www.FreeBSD.org has
	hit similar problems.
Comment 1 davidg freebsd_committer freebsd_triage 1995-11-11 17:42:17 UTC
State Changed
From-To: open->closed

This bug was caused by the lack of timeouts in several important 
cases. It was fixed in rev 1.8 of tcp_timer.c and rev 1.17 of 
tcp_usrreq.c.