summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Bugaevskiy <bugaevskiy@yandex-team.ru>2018-09-27 19:38:58 +0300
committerantirez <antirez@gmail.com>2018-10-31 11:49:49 +0100
commitb31c08db8de133ae499bfa23b681a8e6d3b2477d (patch)
tree3b7f65a33e57a6fd4cc6ee3445c529dc7dedfca2
parent21971ac83cbab9bb8e28324f3b0182c3aa759642 (diff)
downloadredis-b31c08db8de133ae499bfa23b681a8e6d3b2477d.tar.gz
Move child termination to readSyncBulkPayload
-rw-r--r--src/replication.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/replication.c b/src/replication.c
index d8478fbbc..8f49dc2fd 100644
--- a/src/replication.c
+++ b/src/replication.c
@@ -1244,6 +1244,12 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
if (eof_reached) {
int aof_is_enabled = server.aof_state != AOF_OFF;
+ /* Ensure background save doesn't overwrite synced data */
+ if (server.rdb_child_pid != -1) {
+ kill(server.rdb_child_pid,SIGUSR1);
+ rdbRemoveTempFile(server.rdb_child_pid);
+ }
+
if (rename(server.repl_transfer_tmpfile,server.rdb_filename) == -1) {
serverLog(LL_WARNING,"Failed trying to rename the temp DB into dump.rdb in MASTER <-> SLAVE synchronization: %s", strerror(errno));
cancelReplicationHandshake();
@@ -1806,13 +1812,6 @@ void syncWithMaster(aeEventLoop *el, int fd, void *privdata, int mask) {
}
}
- /* Stop background saving for obsolete database state. */
- server.dirty = 0;
- if (server.rdb_child_pid != -1) {
- kill(server.rdb_child_pid,SIGUSR1);
- rdbRemoveTempFile(server.rdb_child_pid);
- }
-
/* Prepare a suitable temp file for bulk transfer */
while(maxtries--) {
snprintf(tmpfile,256,