]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: peers: table entries learned from a remote are pushed to others after...
authorEmeric Brun <ebrun@haproxy.com>
Wed, 16 Dec 2015 14:16:46 +0000 (15:16 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 16 Dec 2015 14:50:22 +0000 (15:50 +0100)
New sticktable entries learned from a remote peer can be pushed to others after
a random delay because they are not inserted at the right position in the updates
tree.

src/peers.c

index 1e661159e925c61ee81d2fa33b8791f8f5f96ebe..295a0a5a420126d3b2ea182bf2902f33ab9cedeb 100644 (file)
@@ -1092,7 +1092,7 @@ switchstate:
                                                        ts = stktable_store(st->table, newts, 0);
                                                        newts = NULL; /* don't reuse it */
 
-                                                       ts->upd.key= (++st->table->update)+(2^31);
+                                                       ts->upd.key= (++st->table->update)+(2147483648U);
                                                        eb = eb32_insert(&st->table->updates, &ts->upd);
                                                        if (eb != &ts->upd) {
                                                                eb32_delete(eb);
@@ -1555,7 +1555,6 @@ incomplete:
                        }
                        case PEER_SESS_ST_EXIT:
                                repl = snprintf(trash.str, trash.size, "%d\n", appctx->st1);
-
                                if (bi_putblk(si_ic(si), trash.str, repl) == -1)
                                        goto full;
                                appctx->st0 = PEER_SESS_ST_END;