BUG/MINOR: peers: some updates are pushed twice after a resync.
This bug is due to a copy/paste error and was introduced with peers-protocol v2: The last_pushed pointer was not correctly reset to the teaching_origin at the end of the teaching state but to the first update present in the tree. The result: some updates were re-pushed after leaving the teaching state. This fix needs to be backported to 1.6.
This commit is contained in:
parent
16e015635c
commit
cc52274496
|
@ -1491,9 +1491,7 @@ static void peer_io_handler(struct appctx *appctx)
|
||||||
/* push local updates */
|
/* push local updates */
|
||||||
if (!eb || eb->key > st->teaching_origin) {
|
if (!eb || eb->key > st->teaching_origin) {
|
||||||
st->flags |= SHTABLE_F_TEACH_STAGE2;
|
st->flags |= SHTABLE_F_TEACH_STAGE2;
|
||||||
eb = eb32_first(&st->table->updates);
|
st->last_pushed = st->teaching_origin;
|
||||||
if (eb)
|
|
||||||
st->last_pushed = eb->key - 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue