Permalink
Browse files

Sentinel: allow SHUTDOWN command in Sentinel mode.

  • Loading branch information...
1 parent 970de3e commit 2d6eb6899319276c0071b922b9458caa909040e1 @antirez committed Feb 7, 2014
Showing with 10 additions and 6 deletions.
  1. +6 −4 src/db.c
  2. +2 −1 src/redis.c
  3. +2 −1 src/sentinel.c
View
@@ -605,11 +605,13 @@ void shutdownCommand(redisClient *c) {
return;
}
}
- /* SHUTDOWN can be called even while the server is in "loading" state.
- * When this happens we need to make sure no attempt is performed to save
+ /* When SHUTDOWN is called while the server is loading a dataset in
+ * memory we need to make sure no attempt is performed to save
* the dataset on shutdown (otherwise it could overwrite the current DB
- * with half-read data). */
- if (server.loading)
+ * with half-read data).
+ *
+ * Also when in Sentinel mode clear the SAVE flag and force NOSAVE. */
+ if (server.loading || server.sentinel_mode)
flags = (flags & ~REDIS_SHUTDOWN_SAVE) | REDIS_SHUTDOWN_NOSAVE;
if (prepareForShutdown(flags) == REDIS_OK) exit(0);
addReplyError(c,"Errors trying to SHUTDOWN. Check logs.");
View
@@ -2190,7 +2190,8 @@ int prepareForShutdown(int flags) {
}
/* Close the listening sockets. Apparently this allows faster restarts. */
closeListeningSockets(1);
- redisLog(REDIS_WARNING,"Redis is now ready to exit, bye bye...");
+ redisLog(REDIS_WARNING,"%s is now ready to exit, bye bye...",
+ server.sentinel_mode ? "Sentinel" : "Redis");
return REDIS_OK;
}
View
@@ -377,7 +377,8 @@ struct redisCommand sentinelcmds[] = {
{"unsubscribe",unsubscribeCommand,-1,"",0,NULL,0,0,0,0,0},
{"psubscribe",psubscribeCommand,-2,"",0,NULL,0,0,0,0,0},
{"punsubscribe",punsubscribeCommand,-1,"",0,NULL,0,0,0,0,0},
- {"info",sentinelInfoCommand,-1,"",0,NULL,0,0,0,0,0}
+ {"info",sentinelInfoCommand,-1,"",0,NULL,0,0,0,0,0},
+ {"shutdown",shutdownCommand,-1,"",0,NULL,0,0,0,0,0}
};
/* This function overwrites a few normal Redis config default with Sentinel

0 comments on commit 2d6eb68

Please sign in to comment.