Adrian Williams reported that several balancing methods were broken and
sent all requests to one backend. This is a regression in haproxy 1.8 where
the server score was not correctly recalculated.

This fix must be backported to the 1.8 branch.
---
 src/lb_map.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lb_map.c b/src/lb_map.c
index ecab4de13..a1e1d3492 100644
--- a/src/lb_map.c
+++ b/src/lb_map.c
@@ -122,7 +122,7 @@ void recalc_server_map(struct proxy *px)
                        }
                }
                px->lbprm.map.srv[o] = best;
-               HA_ATOMIC_ADD(&best->wscore, tot);
+               HA_ATOMIC_SUB(&best->wscore, tot);
        }
 }
 
-- 
2.11.0


Reply via email to