diff options
author | Andrey Bugaevskiy <bugaevskiy@yandex-team.ru> | 2018-09-27 19:38:58 +0300 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2018-10-31 11:49:49 +0100 |
commit | b31c08db8de133ae499bfa23b681a8e6d3b2477d (patch) | |
tree | 3b7f65a33e57a6fd4cc6ee3445c529dc7dedfca2 | |
parent | 21971ac83cbab9bb8e28324f3b0182c3aa759642 (diff) | |
download | redis-b31c08db8de133ae499bfa23b681a8e6d3b2477d.tar.gz |
Move child termination to readSyncBulkPayload
-rw-r--r-- | src/replication.c | 13 |
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, |