Diskless replication: don't send "\n" pings to slaves.

This is useful for normal replication in order to refresh the slave
when we are persisting on disk, but for diskless replication the
child is already receiving data while in WAIT_BGSAVE_END state.
This commit is contained in:
antirez
2014-10-17 10:23:44 +02:00
parent 9512211548
commit ff6f015b2b

View File

@ -1950,7 +1950,9 @@ void replicationCron(void) {
redisClient *slave = ln->value; redisClient *slave = ln->value;
if (slave->replstate == REDIS_REPL_WAIT_BGSAVE_START || if (slave->replstate == REDIS_REPL_WAIT_BGSAVE_START ||
slave->replstate == REDIS_REPL_WAIT_BGSAVE_END) { (slave->replstate == REDIS_REPL_WAIT_BGSAVE_END &&
server.rdb_child_type != REDIS_RDB_CHILD_TYPE_SOCKET))
{
if (write(slave->fd, "\n", 1) == -1) { if (write(slave->fd, "\n", 1) == -1) {
/* Don't worry, it's just a ping. */ /* Don't worry, it's just a ping. */
} }