Messages in this thread |  | | Date | Tue, 27 Jul 2004 09:00:57 -0700 | | From | William Lee Irwin III <> | | Subject | Re: The dreadful CLOSE_WAIT |
| |
On Tue, Jul 27, 2004 at 10:39:47AM +0200, DervishD wrote: > Seems under Linux that, when a connection is in the CLOSE_WAIT > state, the only wait to go to LAST_ACK is the application doing the > 'shutdown()' or 'close()'. Doesn't seem to be a timeout for that. > Well, I think this is dangerous because a bad application (and a > couple of widely used servers have this problem) can exhaust system > network resources (difficult, but possible). For example, a > concurrent FTP server with a race condition that doesn't do the > shutdown when the remote end aborts. Writing such a 'bad app' is very > easy, just do the socket->bind->listen->accept and after accepting > the connection forget the connected socket and keeps on listening. If > the remote end aborts, the server leaves the connection in > CLOSE_WAIT. Sometimes it has a associated timer, when data remains in > the tx queue, it seems that the kernel tries to retransmit all that > data, which makes no sense: in CLOSE_WAIT state the other end is not > there... Surely I'm missing a lot :((
Probably best to implement timeouts by hand in your network daemon.
-- wli - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |