Merge pull request #7032 from soloestoy/psync2-meaningful-offset-bugfix

PSYNC2: reset backlog_idx and master_repl_offset correctly
This commit is contained in:
Salvatore Sanfilippo 2020-03-28 14:52:11 +01:00 committed by GitHub
commit e8afadd52c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2754,11 +2754,16 @@ void replicationCacheMasterUsingMyself(void) {
server.master_repl_offset,
delta);
server.master_initial_offset = server.master_repl_meaningful_offset;
server.master_repl_offset = server.master_repl_meaningful_offset;
if (server.repl_backlog_histlen <= delta) {
server.repl_backlog_histlen = 0;
server.repl_backlog_idx = 0;
} else {
server.repl_backlog_histlen -= delta;
server.repl_backlog_idx =
(server.repl_backlog_idx + (server.repl_backlog_size - delta)) %
server.repl_backlog_size;
if (server.repl_backlog_histlen < 0) server.repl_backlog_histlen = 0;
}
}
/* The master client we create can be set to any DBID, because