BUG/MEDIUM: peers: same table updates re-pushed after a re-connect

Some updates are pushed using an incremental update message after a
re-connection whereas the origin is forgotten by the peer.
These updates are never correctly acknowledged. So they are regularly
re-pushed after an idle timeout and a re-connect.

The fix consists to use an absolute update message in some cases.
This commit is contained in:
Emeric Brun 2015-09-22 15:34:19 +02:00 committed by Willy Tarreau
parent c703a9d296
commit a6a0998529
1 changed files with 2 additions and 2 deletions

View File

@ -250,8 +250,8 @@ static int peer_prepare_updatemsg(struct stksess *ts, struct shared_table *st, c
/* construct message */
/* check if we need to send the update identifer */
if (st->last_pushed && ts->upd.key > st->last_pushed && (ts->upd.key - st->last_pushed) == 1) {
use_identifier = 0;
if (!st->last_pushed || ts->upd.key < st->last_pushed || ((ts->upd.key - st->last_pushed) != 1)) {
use_identifier = 1;
}
/* encode update identifier if needed */