Hi Willy,
same problem here with Chrome version 35.0.1916.114 m and :
HA-Proxy version 1.4.22 2012/08/09 (Debian 6) Kernel 3.8.13-OVH
HA-Proxy version 1.5-dev24-8860dcd 2014/04/26 (Debian GNU/Linux 7.5)
Kernel 3.10.13-OVH
<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>
Timing : Blocking 2ms / Receiving : 1ms
Response header:
HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html
Haproxy cfg:
defaults
mode http
log global
option dontlognull
option redispatch
retries 3
timeout connect 5s
timeout client 20s
timeout server 20s
timeout http-request 5s
timeout http-keep-alive 5s
timeout check 4s
timeout queue 15s
option abortonclose
option httplog
option http-keep-alive
option forwardfor except 127.0.0.0/8
Haproxy 1.5 : Didn't have time to setup log for now, will provide asap.
Haproxy 1.4 : nothing in log (maybe due to dontlognull ?)
If i bypass Haproxy no more 408.
Thanks.
Arnaud.
Le 23/05/2014 16:08, Willy Tarreau a écrit :
Hi Kevin,
[guys, please could you stop top-posting, it's a total mess to try to
respond to this thread, I cannot easily take out the useless parts,
thanks].
On Fri, May 23, 2014 at 02:35:21PM +0200, Kevin Maziere wrote:
2014-05-23 14:34 GMT+02:00 Baptiste <bed...@gmail.com>:
Kevin,
Do you (still) see 408 errors printed in the browser???
Baptiste
On Fri, May 23, 2014 at 2:17 PM, Kevin Maziere <ke...@kbrwadventure.com>
wrote:
Hi
I've just applied the first patch, here are the debug log :
In the logs :
2014-05-23T12:03:20+00:00 images-access haproxy[13409]: 127.0.0.1:56596
[23/May/2014:12:03:17.972] ipv4-yyy-443~ ipv4-yyy-443/<NOSRV>
-1/-1/-1/-1/2041 408 212 - - cR-- 9/3/0/0/0 0/0 "<BADREQ>"
Well, here I'm seeing a standard 408 after 2 seconds which should match
a timeout http-request of 2 seconds. Can you check if you don't have one ?
Also, this observation from the logs doesn't seem consistent with your first
claim that the 408 is immediate, here it's only after 2 seconds. Or again we
are facing this bogus preconnect feature of Chrome. People complain all the
time that not only it connects before you want to go to the site, but above
all it displays the error that it receives without checking that it got an
error prior to using the connection :-(
In the debug log, correspond lines:
2014-05-23T12:03:20+00:00 servername haproxy[13409]: Timeout detected:
fe=ipv4-yyy-443 s->flags=00000080 txn->flags=00000000 req->flags=00c88000
msg->flags=00000000 now_ms=687261517 req->analyse_exp=687261515 (-2)
At least that's good, it's the first request of the connection and nothing
except the regular request timeout occurred.
There was an interesting thread here about the nasty behaviour of chrome :
https://code.google.com/p/chromium/issues/detail?id=85229#c33
Some people suggest closing without ever emitting the 408. You can do that
this way :
errorfile 408 /dev/null
Note that this fantastic browser breaks HTTP by preventing any server from
using the well-defined HTTP status code indicating a timeout occurred.
Kévin, I think the reason why you have the issue only on one OS is not related
to the OS but to your browsing history on that system. The browser doesn't
pre-connect there and you don't have the trouble.
Regards,
Willy