I'm trying to track down a problem with "cR" and "CR" timeouts with haproxy 1.4. A service I thought was nice and stable turns out to have # 4xx/# 2xx ~= 0.2 according to hatop (which pulls in data from the stats socket). Close to 20% client timeouts is far higher than I expected.

The logs look like so:

NAME/<NOSRV> -1/-1/-1/-1/61001 408 212 - - cR-- 31/31/3/0/0 0/0 "<BADREQ>"
NAME/<NOSRV> -1/-1/-1/-1/5650 400 187 - - CR-- 29/29/3/0/0 0/0 "<BADREQ>"
NAME/<NOSRV> -1/-1/-1/-1/5701 400 187 - - CR-- 28/28/3/0/0 0/0 "<BADREQ>"
NAME/<NOSRV> -1/-1/-1/-1/5716 400 187 - - CR-- 24/24/0/0/0 0/0 "<BADREQ>"
NAME/<NOSRV> -1/-1/-1/-1/5559 400 187 - - CR-- 23/23/0/0/0 0/0 "<BADREQ>"
NAME/<NOSRV> -1/-1/-1/-1/5432 400 187 - - CR-- 22/22/0/0/0 0/0 "<BADREQ>"

We usually run with configurations like so:
option               httpclose
option               http-server-close
timeout client       3s
timeout server       3s
timeout connect      5s
timeout http-request 2s

but have tried much higher timeouts:
option               httpclose
timeout client       61s
timeout server       21s
timeout connect      21s
timeout http-request 121s

Higher timeouts turn most of the of the cR timeouts to CR. The docs for CR say "The client aborted before sending a full HTTP request." But I'm not sure exactly what that means. Did the client send a RST? Or a FIN before sending any data? The docs also say "The HTTP status code is likely a 400 here", but I presume it's unlikely the client actually received that

I looked at `show errors` but only a few hundred errors were reported which could not account for the large number of BADREQ log lines.

Reply via email to