Arthur Kreitman wrote: > > I noticed a random but all to frequent (perhaps 1 or 2 or 3 for every > few hundred http requests) error from ap_core_output_filter (about line > 903 in core_filters.c). The error is an os 10054 “An existing > connection was forcibly closed by the remote host”. At the same time, > the client side would believe the server performed a premature socket > close. > > Regardless of the value of KeepAliveTimeout, if I set > MaxKeepAliveRequests to 1 (ie no keep alive) the error occurs for almost > 80% or 90% of the http requests > > If I don’t set MaxKeepAliveRequests, which then uses the default value, > by setting KeepAliveTimeout between 60 and 90 seconds, the error disappears. DING DING DING - thank you for providing the essentials for a reproducible test case!!! It sounds like we are not handling keep alive disconnection in the best manner possible, leading to confusion by the ISAPI application. > My understanding of KeepAliveTimeout is that it plays with the socket > linger option. What are the side effects of setting KeepAliveTimeout > to a high value? What are the side effects of setting > MaxKeepAliveRequests to a high value? 1. fewer workers available to handle high load 2. more exposure to denial of service (every daemon has an implicit denial of service that it can handle only X parallel requests over N amount of time - keeping N low helps mitigate this). Contra wise, the benefit is that the next request from the same client is handled more quickly, if you assume that 'next page' requests will happen within the keepalivetimeout period. --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx