Oh, for some reason my mail client wasn't showing the response from
Willy when I made this reply. Not sure if this info is really necessary
any more. Will try the patch on that email and report back to it.

-Patrick

On 08/13/2013 07:13 PM, Patrick Hemmer wrote:
>
> On 2013/08/11 15:45, Patrick Hemmer wrote:
>> I'm using the %rt field in the "unique-id-format" config parameter
>> (the full value is "%{+X}o%pid-%rt"), and am getting lots of
>> duplicates. In one specific case, haproxy added the same
>> http_request_counter value to 70 different http requests within a
>> span of 61 seconds (from various client hosts too). Does the
>> http_request_counter only increment under certain conditions, or is
>> this a bug?
>>
>> This is with haproxy 1.5-dev19
>>
>> -Patrick
>
>
> This appears to be part of a bug. I just experienced a scenario where
> haproxy stopped responding. When I went into the log I found binary
> garbage in place of the request ID. I have haproxy configured to route
> certain URLs, and to respond with a `errorfile` when a request comes
> in that doesn't match any of the configure paths. It seems whenever I
> request an invalid URL and get the `errorfile` response, the request
> ID gets screwed up and becomes jumbled binary data.
>
> For example: haproxy[28645]: 207.178.167.185:49560 api bad_url/<NOSRV>
> 71/-1/-1/-1/71 3/3/0/0/3 0/0 127/242 403 PR-- Á + GET / HTTP/1.1
> Notice the "Á", that's supposed to be the process ID and request ID
> separated by a hyphen. When I pipe it into xxd, I get this:
>
> 0000000: 6861 7072 6f78 795b 3238 3634 355d 3a20  haproxy[28645]:
> 0000010: 3230 372e 3137 382e 3136 372e 3138 353a  207.178.167.185:
> 0000020: 3439 3536 3020 6170 6920 6261 645f 7572  49560 api bad_ur
> 0000030: 6c2f 3c4e 4f53 5256 3e20 3731 2f2d 312f  l/<NOSRV> 71/-1/
> 0000040: 2d31 2f2d 312f 3731 2033 2f33 2f30 2f30  -1/-1/71 3/3/0/0
> 0000050: 2f33 2030 2f30 2031 3237 2f32 3432 2034  /3 0/0 127/242 4
> 0000060: 3033 2050 522d 2d20 90c1 8220 2b20 4745  03 PR-- ... + GE
> 0000070: 5420 2f20 4854 5450 2f31 2e31 0a         T / HTTP/1.1.
>
>
> I won't post my entire config as it's over 300 lines, but here's the
> juicy stuff:
>
>
> global
>         log 127.0.0.1   local0
>         maxconn 20480
>         user haproxy
>         group haproxy
>         daemon
>
> defaults
>         log     global
>         mode    http
>         option  httplog
>         option  dontlognull
>         retries 3
>         option  redispatch
>         timeout connect 5000
>         timeout client 60000
>         timeout server 170000
>         option  clitcpka
>         option  srvtcpka
>
>         stats   enable
>         stats   uri /haproxy/stats
>         stats   refresh 5
>         stats   auth my:secret
>
> listen stats
>         bind 0.0.0.0:90
>         mode http
>         stats enable
>         stats uri /
>         stats refresh 5
>
> frontend api
>   bind *:80
>   bind *:81 accept-proxy
>
>   option httpclose
>   option forwardfor
>   http-request add-header X-Request-Timestamp %Ts.%ms
>   unique-id-format %{+X}o%pid-%rt
>   unique-id-header X-Request-Id
>   rspadd X-Api-Host:\ i-a22932d9
>
>   reqrep ^([^\ ]*)\ ([^\?\ ]*)(\?[^\ ]*)?\ HTTP.*  \0\r\nX-API-URL:\ \2
>
>
>   acl is_1_1 path_dir /1/my/path
>   use_backend 1_1 if is_1_1
>
>   acl is_1_2 path_dir /1/my/other_path
>   use_backend 1_2 if is_1_2
>
>   ...
>
>   default_backend bad_url
>
>   log-format %ci:%cp\ %ft\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\
> %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %U/%B\ %ST\ %tsc\ %ID\ +\ %r
>
> backend bad_url
>   block if TRUE
>   errorfile 403 /etc/haproxy/bad_url.http

Reply via email to