Hi,
On Fri, Feb 11, 2011 at 12:59:01PM +0100, Craig Craig wrote:
> Hi,
>
> this is an addition to the cases I sent previously, I accidentally found out
> that haproxy behaves differently when the last header is not a "Connection:"
> header.
>
> This is a case for config #2 ("reqidel ^X-Forwarded-For:.*" is set):
>
> case i): stays on the same backend.
> nc 127.0.0.1 8085 <<EOF
> GET / HTTP/1.1
> Host: www.google.de
> X-Forwarded-For: 127.0.0.1
> Connection: keep-alive
> Some-Header: foobar
>
> EOF
>
> Expected behaviour:
> Case i) and h) *must* behave the same. Some browsers reorder the headers, so
> you might have a "Cookie:" after a "Connection:" header, thus some users will
> be loadbalanced to the same backend, some will jump between backends.
> A really mean bug...
I agree. There is absolutely zero reason for the behaviour to differ
when the headers are differently ordered. I think that the fix for the
double header deletion bug introduced a new bug. I'll try all of your
configs with 1.4.10, 1.4.11 and 1.4.8 in case I can spot something.
Thanks very much for all your tests and details,
Willy