mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
BUG/MEDIUM: peers: table entries learned from a remote are pushed to others after a random delay.
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.
This commit is contained in:
parent
d19630c1fe
commit
234fc3c31e
@ -1092,7 +1092,7 @@ switchstate:
|
|||||||
ts = stktable_store(st->table, newts, 0);
|
ts = stktable_store(st->table, newts, 0);
|
||||||
newts = NULL; /* don't reuse it */
|
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);
|
eb = eb32_insert(&st->table->updates, &ts->upd);
|
||||||
if (eb != &ts->upd) {
|
if (eb != &ts->upd) {
|
||||||
eb32_delete(eb);
|
eb32_delete(eb);
|
||||||
@ -1555,7 +1555,6 @@ incomplete:
|
|||||||
}
|
}
|
||||||
case PEER_SESS_ST_EXIT:
|
case PEER_SESS_ST_EXIT:
|
||||||
repl = snprintf(trash.str, trash.size, "%d\n", appctx->st1);
|
repl = snprintf(trash.str, trash.size, "%d\n", appctx->st1);
|
||||||
|
|
||||||
if (bi_putblk(si_ic(si), trash.str, repl) == -1)
|
if (bi_putblk(si_ic(si), trash.str, repl) == -1)
|
||||||
goto full;
|
goto full;
|
||||||
appctx->st0 = PEER_SESS_ST_END;
|
appctx->st0 = PEER_SESS_ST_END;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user