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