Re: mystery NCSA httpd problems on gnn.com

Dave Kristol ([email protected])
Tue, 31 Jan 1995 15:42:05 +0100


Robert S. Thau said:
* if the accept()
* queue on the socket is full to bursting, why doesn't the server
* accept new connections?

Rob McCool said:
> Because the queue is used both for connections that are ready to be
> accepted as well as for half-negotiated connections. The latter can
> fill the queue, starving any new connections from being negotiated.

This sounds like a very interesting hypothesis. Suppose all the
pending connections were half-negotiated. The queue might be full, so
the server (actually, the OS) would reject new connections, but there
would be no completed connections to process.

Also, what happens if a connection request is sitting in the queue and
the client decides to break the connection before the server gets to
it? (This may correspond to what happens when Netscape opens a bunch
of connections but the user decides to move to another page, and the
client breaks the connections.) Do the pending connections stay in the
accept queue, or are they removed?

Dave Kristol