]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: backend: remove impossible case of round-robin + consistent hash
authorWilly Tarreau <w@1wt.eu>
Tue, 22 Jun 2021 15:31:51 +0000 (17:31 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 22 Jun 2021 17:21:11 +0000 (19:21 +0200)
In 1.4, consistent hashing was brought by commit 6b2e11be1 ("[MEDIUM]
backend: implement consistent hashing variation") which took care of
replacing all direct calls to map_get_server_rr() with an alternate
call to chash_get_next_server() if consistent hash was being used.

One of them, however, cannot happen because a preliminary test for
static round-robin is being done prior to the call, so we're certain
that if it matches it cannot use a consistent hash tree.

Let's remove it.

src/backend.c

index 2041c430e2cece0fec89172ea9148b52cd574767..f5fec1d8ad36a91c36a26320ca47a612e4c8c504 100644 (file)
@@ -679,10 +679,9 @@ int assign_server(struct stream *s)
                case BE_LB_LKUP_CHTREE:
                case BE_LB_LKUP_MAP:
                        if ((s->be->lbprm.algo & BE_LB_KIND) == BE_LB_KIND_RR) {
+                               /* static-rr (map) or random (chash) */
                                if ((s->be->lbprm.algo & BE_LB_PARM) == BE_LB_RR_RANDOM)
                                        srv = get_server_rnd(s, prev_srv);
-                               else if ((s->be->lbprm.algo & BE_LB_LKUP) == BE_LB_LKUP_CHTREE)
-                                       srv = chash_get_next_server(s->be, prev_srv);
                                else
                                        srv = map_get_server_rr(s->be, prev_srv);
                                break;