On Fri, 16 Nov 2001, Cliff Woolley wrote: > On Fri, 16 Nov 2001, Gary Benson wrote: > > > Anyone have any objections to my rewriting mod_echo_post to dump > > everything to a temporary file and then read it back? > > I wish I understood exactly why this was happening... it seems almost > indicative of some problem in Apache or APR. The module shouldn't have to > buffer all this stuff... it should be able to do a read from the input > filter chain, process it, and send some output down the output filter > chain, and that ought to be it. Buffering the whole thing either in RAM > or on disk in a production environment would open a huge DoS hole.
The problem isn't in Apache: what is happening is that the way mod_echo_post works is exposing a weakness in the client code, in this case libwwwperl. The clients should really read and write simultaneously, but this isn't normally a problem since what happens with the vast majority of requests is that the handler reads the request in its entirity, chews it over a bit and then returns something. This behaviour doesn't saturate the buffers. Of course, I say it is the clients' fault, but perhaps it is the OS: the problem seems to affect only some OSes and not others -- perhaps these OSes have fixed size socket buffers? A 100k mod_echo_post request is enough to cause problems and none of the machines we use are _that_ short on memory ;) Gary [ [EMAIL PROTECTED] ][ GnuPG 85A8F78B ][ http://inauspicious.org/ ]