From: antirez Date: Wed, 2 May 2012 15:14:45 +0000 (+0200) Subject: Use specific error if master is down and slave-serve-stale-data is set to no. X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/0b08d64882e453b04f23c184c047dce1de65845b Use specific error if master is down and slave-serve-stale-data is set to no. We used to reply -ERR ... message ..., now the reply is instead -MASTERDOWN ... message ... so that it can be distinguished easily by the other error conditions. --- diff --git a/src/redis.c b/src/redis.c index e2f9024b..0a12ccd2 100644 --- a/src/redis.c +++ b/src/redis.c @@ -970,6 +970,8 @@ void createSharedObjects(void) { "-LOADING Redis is loading the dataset in memory\r\n")); shared.slowscripterr = createObject(REDIS_STRING,sdsnew( "-BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n")); + shared.masterdownerr = createObject(REDIS_STRING,sdsnew( + "-MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'.\r\n")); shared.bgsaveerr = createObject(REDIS_STRING,sdsnew( "-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.\r\n")); shared.roslaveerr = createObject(REDIS_STRING,sdsnew( @@ -1541,8 +1543,7 @@ int processCommand(redisClient *c) { server.repl_serve_stale_data == 0 && c->cmd->proc != infoCommand && c->cmd->proc != slaveofCommand) { - addReplyError(c, - "link with MASTER is down and slave-serve-stale-data is set to no"); + addReply(c, shared.masterdownerr); return REDIS_OK; } diff --git a/src/redis.h b/src/redis.h index 2084dfd2..281c0878 100644 --- a/src/redis.h +++ b/src/redis.h @@ -366,7 +366,8 @@ struct sharedObjectsStruct { *colon, *nullbulk, *nullmultibulk, *queued, *emptymultibulk, *wrongtypeerr, *nokeyerr, *syntaxerr, *sameobjecterr, *outofrangeerr, *noscripterr, *loadingerr, *slowscripterr, *bgsaveerr, - *roslaveerr, *oomerr, *plus, *messagebulk, *pmessagebulk, *subscribebulk, + *masterdownerr, *roslaveerr, + *oomerr, *plus, *messagebulk, *pmessagebulk, *subscribebulk, *unsubscribebulk, *psubscribebulk, *punsubscribebulk, *del, *rpop, *lpop, *select[REDIS_SHARED_SELECT_CMDS], *integers[REDIS_SHARED_INTEGERS],