httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pavel Stano <stan...@blackhole.sk>
Subject Re: apache 2.2 mod_proxy_http disable buffering
Date Fri, 07 Dec 2007 01:47:49 GMT
Ruediger Pluem wrote:
> 
> You are correct. This is only fixed in trunk so far. You are affected by
> PR41056 (https://issues.apache.org/bugzilla/show_bug.cgi?id=41056).
> I just proposed the patch from trunk for backport. Please find the
> patch attached for your convenience.
> 

thanks for patch, it works, but it looks that it create another problem,
do not backport it yet to 2.2.x

proxy (2.2.6 with this patch) sometimes dont send data to client, just
headers from backend, data are lost (blank page in browser)
it took me some time to reproduce it at 100%
it happend when proxy read headers in first read() and data in second
and others read()

problem does not happend when proxy in first read() read headers WITH
some data, in my case it is 99% of all time

here is strace output from proxy when happend that problem

... proxy send request to backend
11902 writev(14, [{"GET /~stanojr/tmp/p/ HTTP/1.1\r\n", 31}, {"Host:
xxx.xx\r\n", 21}, {"X-Forwarded-For: 1.2.3.4, 1.2.3.4\r\n", 47},
{"Max-Forwards: 10\r\n", 18}, {"X-Forwarded-Host: xxx.xx\r\n", 33},
{"X-Forwarded-Server: xxx.xx\r\n", 35}, {"Connection: Keep-Alive\r\n",
24}, {"\r\n", 2}], 8) = 211
11902 read(14, 0x7576c8, 8000)          = -1 EAGAIN (Resource
temporarily unavailable)
11902 poll([{fd=14, events=POLLIN, revents=POLLIN}], 1, 600000) = 1

... proxy read headers from backend (no data)
11902 read(14, "HTTP/1.1 200 OK\r\nDate: Fri, 07 Dec 2007 01:35:42
GMT\r\nServer: Apache\r\nVary: User-Agent\r\nConnection:
close\r\nTransfer-Encoding: chunked\r\nContent-Type: text/html\r\n\r\n",
8000) = 162
11902 read(14, 0x7576c8, 8000)          = -1 EAGAIN (Resource
temporarily unavailable)

... proxy send headers to client
11902 writev(11, [{"HTTP/1.1 200 OK\r\nDate: Fri, 07 Dec 2007 01:35:42
GMT\r\nServer: Apache\r\nVary: User-Agent\r\nContent-Type:
text/html\r\nConnection: close\r\n\r\n", 134}], 1) = 134
11902 read(14, 0x7576c8, 8000)          = -1 EAGAIN (Resource
temporarily unavailable)
11902 poll([{fd=14, events=POLLIN, revents=POLLIN}], 1, 600000) = 1

... proxy read data from backend (AAAAAA)
11902 read(14, "6\r\nAAAAAA\r\n0\r\n\r\n", 8000) = 16
11902 read(14, "", 8000)                = 0

... proxy send to client nothing (actually it show 0, sometimes it show
blank page)
11902 writev(11, [{"0\r\n\r\n", 5}], 1) = 5
11902 close(14)                         = 0

-- 
Pavel Stano

Mime
View raw message