From cc522744967c6d6a3d8f78ab5f54a0ec19a17577 Mon Sep 17 00:00:00 2001 From: Emeric Brun Date: Wed, 10 Aug 2016 17:19:27 +0200 Subject: [PATCH] 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. --- src/peers.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/peers.c b/src/peers.c index a8066c53ee..b3a14e6a7a 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1491,9 +1491,7 @@ incomplete: /* push local updates */ if (!eb || eb->key > st->teaching_origin) { st->flags |= SHTABLE_F_TEACH_STAGE2; - eb = eb32_first(&st->table->updates); - if (eb) - st->last_pushed = eb->key - 1; + st->last_pushed = st->teaching_origin; break; }