summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2017-09-17 07:22:16 +0300
committerOran Agra <oran@redislabs.com>2017-09-17 07:22:16 +0300
commitb122cadc666054ea83c699d65b518dc0f6f633c0 (patch)
treef8a895587c22ff12b37a43fe8b82c3caca66abe5
parent202c2ebec4d47d6f8cfbb6c91dd4486dd62aebf6 (diff)
downloadredis-b122cadc666054ea83c699d65b518dc0f6f633c0.tar.gz
Flush append only buffers before existing.
when SHUTDOWN command is recived it is possible that some of the recent command were not yet flushed from the AOF buffer, and the server experiences data loss at shutdown.
-rw-r--r--src/server.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server.c b/src/server.c
index ef05f055d..312b95048 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2536,8 +2536,9 @@ int prepareForShutdown(int flags) {
"There is a child rewriting the AOF. Killing it!");
kill(server.aof_child_pid,SIGUSR1);
}
- /* Append only file: fsync() the AOF and exit */
+ /* Append only file: flush buffers and fsync() the AOF at exit */
serverLog(LL_NOTICE,"Calling fsync() on the AOF file.");
+ flushAppendOnlyFile(1);
aof_fsync(server.aof_fd);
}