On Wed, 2009-12-09 at 00:16 +0100, Matthias Rieber wrote: > Hello, > > I've a simple test setup. Pound + Apache2. On the webserver runs a script > that redirects the request to the very same server to another script. In > rare cases the connection (seems) to fail. > > After some investigation it seems that it's easier to duplicate that > behaviour on a loaded pound server and a fast client. Running wget in > debug/verbose mode: > > ...after the first request... > --2009-12-09 00:00:39-- > http://domain.invalid/script > Reusing existing connection to domain.invalid:80. > Reusing fd 3. > > ---request begin--- > GET /script HTTP/1.0 > User-Agent: Wget/1.11.4 > Accept: */* > Host: domain.invalid > Connection: Keep-Alive > > ---request end--- > HTTP request sent, awaiting response... No data received. > Disabling further reuse of socket 3. > Closed fd 3 > Giving up. > > It seems that it sends the next request just the moment before pound > closes the connection. When I put some load on the client, the requests > won't fail, because the connections are closed before wget sends the next > request. > > Disabling KeepAlive on Apache2 seems to solve this problem. > > Is that a known issue? Is keepalive not recommended on backend servers? > > kind regards, > > Matthias
Your script tries to reuse a socket, even though the protocol is HTTP/1.0. This is not allowed, as per the RFC. -- Robert Segall Apsis GmbH Postfach, Uetikon am See, CH-8707 Tel: +41-44-920 4904 -- To unsubscribe send an email with subject unsubscribe to [email protected]. Please contact [email protected] for questions.
