Commit 074d24df authored by antirez's avatar antirez
Browse files

Narrow the effects of PR #6029 to the exact state.

CLIENT PAUSE may be used, in other contexts, for a long time making all
the slaves time out. Better for now to be more specific about what
should disable senidng PINGs.

An alternative to that would be to virtually refresh the slave
interactions when clients are paused, however for now I went for this
more conservative solution.
parent caf74e50
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "server.h" #include "server.h"
#include "cluster.h"
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
...@@ -2601,12 +2602,23 @@ void replicationCron(void) { ...@@ -2601,12 +2602,23 @@ void replicationCron(void) {
/* First, send PING according to ping_slave_period. */ /* First, send PING according to ping_slave_period. */
if ((replication_cron_loops % server.repl_ping_slave_period) == 0 && if ((replication_cron_loops % server.repl_ping_slave_period) == 0 &&
listLength(server.slaves) && !clientsArePaused()) listLength(server.slaves))
{ {
ping_argv[0] = createStringObject("PING",4); /* Note that we don't send the PING if the clients are paused during
replicationFeedSlaves(server.slaves, server.slaveseldb, * a Redis Cluster manual failover: the PING we send will otherwise
ping_argv, 1); * alter the replication offsets of master and slave, and will no longer
decrRefCount(ping_argv[0]); * match the one stored into 'mf_master_offset' state. */
int manual_failover_in_progress =
server.cluster_enabled &&
server.cluster->mf_end &&
clientsArePaused();
if (!manual_failover_in_progress) {
ping_argv[0] = createStringObject("PING",4);
replicationFeedSlaves(server.slaves, server.slaveseldb,
ping_argv, 1);
decrRefCount(ping_argv[0]);
}
} }
/* Second, send a newline to all the slaves in pre-synchronization /* Second, send a newline to all the slaves in pre-synchronization
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment