]> git.saurik.com Git - redis.git/blobdiff - src/aof.c
Fixed issue #435 and at the same time introduced explicit ping in the master-slave...
[redis.git] / src / aof.c
index f5d04a62b4d493d1cbb82b5b7f2b98a55adf0a10..56392f2aac7d0757458556c2c58ced2f316a4f3e 100644 (file)
--- a/src/aof.c
+++ b/src/aof.c
@@ -529,7 +529,10 @@ int rewriteAppendOnlyFileBackground(void) {
     pid_t childpid;
 
     if (server.bgrewritechildpid != -1) return REDIS_ERR;
-    redisAssert(server.ds_enabled == 0);
+    if (server.ds_enabled != 0) {
+        redisLog(REDIS_WARNING,"BGREWRITEAOF called with diskstore enabled: AOF is not supported when diskstore is enabled. Operation not performed.");
+        return REDIS_ERR;
+    }
     if ((childpid = fork()) == 0) {
         /* Child */
         char tmpfile[256];
@@ -585,10 +588,7 @@ void aofRemoveTempFile(pid_t childpid) {
 
 /* A background append only file rewriting (BGREWRITEAOF) terminated its work.
  * Handle this. */
-void backgroundRewriteDoneHandler(int statloc) {
-    int exitcode = WEXITSTATUS(statloc);
-    int bysignal = WIFSIGNALED(statloc);
-
+void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
     if (!bysignal && exitcode == 0) {
         int fd;
         char tmpfile[256];
@@ -636,7 +636,7 @@ void backgroundRewriteDoneHandler(int statloc) {
     } else {
         redisLog(REDIS_WARNING,
             "Background append only file rewriting terminated by signal %d",
-            WTERMSIG(statloc));
+            bysignal);
     }
 cleanup:
     sdsfree(server.bgrewritebuf);