summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2020-03-30 17:29:04 +0200
committerantirez <antirez@gmail.com>2020-03-30 17:29:04 +0200
commitf6d5996ead002350558eb614f275553432f1eb19 (patch)
tree0658747c46fa79f173976c9ebb5132108a596fa5
parent3ef59b50c40c87d6d50d5a52f3859c1a152d805d (diff)
parentaca7f36b57af5f878868d38758849caae0ca91c5 (diff)
downloadredis-f6d5996ead002350558eb614f275553432f1eb19.tar.gz
Merge branch 'unstable' of github.com:/antirez/redis into unstable
-rw-r--r--src/dict.c2
-rw-r--r--src/replication.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/src/dict.c b/src/dict.c
index 93e6c39a7..ac6f8cfde 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -134,7 +134,7 @@ int _dictInit(dict *d, dictType *type,
* but with the invariant of a USED/BUCKETS ratio near to <= 1 */
int dictResize(dict *d)
{
- int minimal;
+ unsigned long minimal;
if (!dict_can_resize || dictIsRehashing(d)) return DICT_ERR;
minimal = d->ht[0].used;
diff --git a/src/replication.c b/src/replication.c
index 20f9a2129..3e9910374 100644
--- a/src/replication.c
+++ b/src/replication.c
@@ -2754,11 +2754,16 @@ void replicationCacheMasterUsingMyself(void) {
server.master_repl_offset,
delta);
server.master_initial_offset = server.master_repl_meaningful_offset;
- 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;
+ 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;
+ }
}
/* The master client we create can be set to any DBID, because