summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2015-03-20 16:56:44 +0100
committerantirez <antirez@gmail.com>2015-03-20 16:56:59 +0100
commit230d14142032bd054efceab21801068b5aa8a330 (patch)
tree80009c5deb743d53eb14bc631d1d6bb0bba071ca
parent4f2555aa17504b1f99a5f35a69302cc425b30d74 (diff)
downloadredis-230d14142032bd054efceab21801068b5aa8a330.tar.gz
Cluster: separate unknown master check from the rest.
In no case we should try to attempt to failover if myself->slaveof is NULL.
-rw-r--r--src/cluster.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cluster.c b/src/cluster.c
index 4ff8fb4d6..74468cfae 100644
--- a/src/cluster.c
+++ b/src/cluster.c
@@ -4176,9 +4176,12 @@ void clusterCommand(redisClient *c) {
if (nodeIsMaster(myself)) {
addReplyError(c,"You should send CLUSTER FAILOVER to a slave");
return;
+ } else if (myself->slaveof == NULL) {
+ addReplyError(c,"I'm a slave but my master is unknown to me");
+ return;
} else if (!force &&
- (myself->slaveof == NULL || nodeFailed(myself->slaveof) ||
- myself->slaveof->link == NULL))
+ (nodeFailed(myself->slaveof) ||
+ myself->slaveof->link == NULL))
{
addReplyError(c,"Master is down or failed, "
"please use CLUSTER FAILOVER FORCE");