[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#573163: apache2.2-common - mod_proxy_http reports stray timeouts



On Tue, Mar 09, 2010 at 08:28:44PM +0100, Stefan Fritsch wrote:
> On Tuesday 09 March 2010, Bastian Blank wrote:
> > The timeout is reported less then 30 seconds after the start, which
> >  is much below the configured timeout.
> Please try if disabling mod_reqtimeout fixes the problem.

Yep, I did not see any of the mentioned errors anymore.

I found the following in a trace with mod_reqtimeout enabled:
| read(15, "GET / HTTP/1.1\r\nHost: example.com:8080\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.6) Gecko/20091216 Iceweasel/3.5.8 (like Firefox/3.5.8)\r\nAccept: "..., 8000) = X
| gettimeofday({1268142128, 550919}, NULL) = 0
| gettimeofday({1268142128, 551011}, NULL) = 0
| gettimeofday({1268142128, 551124}, NULL) = 0
| gettimeofday({1268142128, 551213}, NULL) = 0
| gettimeofday({1268142128, 551300}, NULL) = 0
| gettimeofday({1268142128, 551387}, NULL) = 0
| gettimeofday({1268142128, 551474}, NULL) = 0
| gettimeofday({1268142128, 551561}, NULL) = 0
| gettimeofday({1268142128, 551648}, NULL) = 0
| gettimeofday({1268142128, 551734}, NULL) = 0
| gettimeofday({1268142128, 551821}, NULL) = 0
| gettimeofday({1268142128, 551907}, NULL) = 0
| gettimeofday({1268142128, 552122}, NULL) = 0
| poll([{fd=18, events=POLLIN}], 1, 0)    = 0 (Timeout)
| writev(18, [{"GET / HTTP/1.1\r\n", 188}, {"Host: localhost:2120\r\n", 45}, {"User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.6) Gecko/20091216 Iceweasel/3.5.8 (like Firefox/3.5.8)\r\n", 117}, {"Accept: */*\r\n", 13}, {"Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n", 54}, {"Accept-Encoding: gzip,deflate\r\n", 31}, {"Via: 1.1 example.com:8080\r\n", 44}, {"X-Forwarded-For: 0.1.2.3\r\n", 32}, {"X-Forwarded-Host: example.com:8080\r\n", 53}, {"X-Forwarded-Server: examle.com\r\n", 50}, {"Connection: Keep-Alive\r\n", 24}, {"\r\n", 2}], 15) = X
| gettimeofday({1268142128, 552791}, NULL) = 0
| gettimeofday({1268142128, 552943}, NULL) = 0
| write(2, "[Tue Mar 09 14:42:08 2010] [error] [client 0.1.2.3] (70007)The timeout specified has expired: proxy: error reading status line from remote server localhost, referer: http://example.com\n";, 250) = 250
| gettimeofday({1268142128, 553416}, NULL) = 0
| write(2, "[Tue Mar 09 14:42:08 2010] [error] [client 0.1.2.3] proxy: Error reading from remote server returned by /, referer: http://example.com\n";, 245) = 245
| close(18)

It checks for POLLIN (aka for readable things) before writing the
request, which makes no sense at all.

Oh, and the timeout error should include the port, otherwise it is
impossible to distinguish two backends on the same ip.

Bastian

-- 
The sight of death frightens them [Earthers].
		-- Kras the Klingon, "Friday's Child", stardate 3497.2



Reply to: