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




Reply via email to