]> git.saurik.com Git - redis.git/commitdiff
startAppendOnly() fixed to set server.appendonly to 0 if the start failed.
authorantirez <antirez@gmail.com>
Tue, 20 Dec 2011 16:00:27 +0000 (17:00 +0100)
committerantirez <antirez@gmail.com>
Tue, 20 Dec 2011 16:00:50 +0000 (17:00 +0100)
src/aof.c

index 15a456f9de00269d4402682e1cfa39b112240314..0d2aab8bdabd54f7e727a2aafb588110d11f27f9 100644 (file)
--- a/src/aof.c
+++ b/src/aof.c
@@ -44,7 +44,6 @@ void stopAppendOnly(void) {
 /* Called when the user switches from "appendonly no" to "appendonly yes"
  * at runtime using the CONFIG command. */
 int startAppendOnly(void) {
-    server.appendonly = 1;
     server.lastfsync = time(NULL);
     server.appendfd = open(server.appendfilename,O_WRONLY|O_APPEND|O_CREAT,0644);
     if (server.appendfd == -1) {
@@ -52,13 +51,13 @@ int startAppendOnly(void) {
         return REDIS_ERR;
     }
     if (rewriteAppendOnlyFileBackground() == REDIS_ERR) {
-        server.appendonly = 0;
         close(server.appendfd);
         redisLog(REDIS_WARNING,"Redis needs to enable the AOF but can't trigger a background AOF rewrite operation. Check the above logs for more info about the error.");
         return REDIS_ERR;
     }
     /* We correctly switched on AOF, now wait for the rerwite to be complete
      * in order to append data on disk. */
+    server.appendonly = 1;
     server.aof_wait_rewrite = 1;
     return REDIS_OK;
 }