Hi, Thank you for the bug repport. I reproduce it, and it was a real bug. I look for this later.
Thierry On Thu, 23 Apr 2015 22:42:25 +0100 Robert Samuel Newson <[email protected]> wrote: > Hi All, > > I’m playing with the new set-path feature and encountered a bug. I’m using > 1.6-dev1 plus all the patches up to Apr 22nd, I think we’re all clear that > set-path was not working at all in 1.6-dev1 itself. It does now work but not > in all situations I’d expect. > > My config is below. I do nc -lk 8000 for the backend. For the first three > cases, I see the right HTTP request printed there. For the fourth, nothing, > and haproxy generates a 503. This is true if backend.map is empty (and thus > the default "back" should be chosen, which does exist) or it can contain > valid mappings to "back" and still returns 503 for requests with a matching > Host header. > > > global > nbproc 1 > > defaults > mode http > log global > balance roundrobin > option httplog > option log-health-checks > option log-separate-errors > option forwardfor > option redispatch > retries 4 > option http-server-close > timeout client 150s > timeout server 1h > timeout connect 5s > timeout queue 5s > > frontend front > bind :9000 > > # comment out as appropriate > > # case 1: works > use_backend %[hdr(host),map(backend.map,back)] > > # case 2: works > use_backend back > > # case 3: works > http-request set-path /foo > use_backend back > > # case 4: fails (503 response, no request sent to backend) > # backend.map can be empty or contain a valid mapping > http-request set-path /foo > use_backend %[hdr(host),lower,map(backend.map,back)] > > backend back > server server1 127.0.0.1:8000 weight 10 check inter 7s > >

