mirror of
https://github.com/fluencelabs/redis
synced 2025-03-21 01:50:50 +00:00
After SLAVEOF <newslave> don't allow chained slaves to PSYNC.
This commit is contained in:
parent
078882025e
commit
41d64a7516
@ -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) {
|
|||||||
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)",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user