redis slave won't sync with master

timsabat picture timsabat · Sep 17, 2013 · Viewed 31.9k times · Source

The redis slave won't sync with the master.

Connectivity:

I can connect to the master when I issue

HOST_NAME=fakehost
redis-cli -h $HOST_NAME

and check the master status using a command like INFO, so connectivity is not an issue.

Settings:

From the slave box, I issued

SLAVEOF $HOST_NAME 6379

And received an OK.

When I issue the INFO command on the slave, I get

# Replication
role:slave
master_host:<removed>
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:1379450797
slave_priority:100
slave_read_only:1
connected_slaves:0

On the master box, I issue info and get

# Replication
role:master
connected_slaves:0

So obviously I'm not connected.

Logs

[11225] 17 Sep 14:31:33.225 * Connecting to MASTER...
[11225] 17 Sep 14:31:33.226 * MASTER <-> SLAVE sync started
[11225] 17 Sep 14:31:33.226 * Non blocking connect for SYNC fired the event.
[11225] 17 Sep 14:31:33.226 * Master replied to PING, replication can continue...
[11225] 17 Sep 14:31:33.227 # MASTER aborted replication with an error: ERR Unable to perform background save

Tests

Test that dump.rdb is created on BGSAVE

BGSAVE
> OK

Test that dump.rdb is created on SAVE

SAVE
> OK

Thanks in advance.

Answer

yanhan picture yanhan · Jan 30, 2014

I encountered a similar situation today. It seems that for systems that use sysctl, you might have to do:

sysctl vm.overcommit_memory=1

and restart the slave redis server. This link might help.