提交 41d64a75 编写于 作者: A antirez

After SLAVEOF <newslave> don't allow chained slaves to PSYNC.

上级 07888202
...@@ -87,7 +87,7 @@ void resizeReplicationBacklog(long long newsize) { ...@@ -87,7 +87,7 @@ void resizeReplicationBacklog(long long newsize) {
} }
void freeReplicationBacklog(void) { void freeReplicationBacklog(void) {
redisAssert(server.repl_backlog != NULL); redisAssert(listLength(server.slaves) == 0);
zfree(server.repl_backlog); zfree(server.repl_backlog);
server.repl_backlog = NULL; server.repl_backlog = NULL;
} }
...@@ -1217,6 +1217,7 @@ void slaveofCommand(redisClient *c) { ...@@ -1217,6 +1217,7 @@ void slaveofCommand(redisClient *c) {
if (server.master) freeClient(server.master); if (server.master) freeClient(server.master);
disconnectSlaves(); /* Force our slaves to resync with us as well. */ disconnectSlaves(); /* Force our slaves to resync with us as well. */
replicationDiscardCachedMaster(); /* Don't try a PSYNC. */ replicationDiscardCachedMaster(); /* Don't try a PSYNC. */
freeReplicationBacklog(); /* Don't allow our chained slaves to PSYNC. */
cancelReplicationHandshake(); cancelReplicationHandshake();
server.repl_state = REDIS_REPL_CONNECT; server.repl_state = REDIS_REPL_CONNECT;
redisLog(REDIS_NOTICE,"SLAVE OF %s:%d enabled (user request)", redisLog(REDIS_NOTICE,"SLAVE OF %s:%d enabled (user request)",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册