1
0
mirror of https://github.com/fluencelabs/redis synced 2025-03-19 17:10:50 +00:00

Cluster: flag the transaction as dirty for the new redirections.

This commit is contained in:
antirez 2014-03-11 15:19:00 +01:00
parent 429aff4ef4
commit 133fccb03f

@ -2018,12 +2018,14 @@ int processCommand(redisClient *c) {
int hashslot; int hashslot;
if (server.cluster->state != REDIS_CLUSTER_OK) { if (server.cluster->state != REDIS_CLUSTER_OK) {
flagTransaction(c);
addReplySds(c,sdsnew("-CLUSTERDOWN The cluster is down. Use CLUSTER INFO for more information\r\n")); addReplySds(c,sdsnew("-CLUSTERDOWN The cluster is down. Use CLUSTER INFO for more information\r\n"));
return REDIS_OK; return REDIS_OK;
} else { } else {
int error_code; int error_code;
clusterNode *n = getNodeByQuery(c,c->cmd,c->argv,c->argc,&hashslot,&error_code); clusterNode *n = getNodeByQuery(c,c->cmd,c->argv,c->argc,&hashslot,&error_code);
if (n == NULL) { if (n == NULL) {
flagTransaction(c);
if (error_code == REDIS_CLUSTER_REDIR_CROSS_SLOT) { if (error_code == REDIS_CLUSTER_REDIR_CROSS_SLOT) {
addReplySds(c,sdsnew("-CROSSSLOT Keys in request don't hash to the same slot\r\n")); addReplySds(c,sdsnew("-CROSSSLOT Keys in request don't hash to the same slot\r\n"));
} else if (error_code == REDIS_CLUSTER_REDIR_UNSTABLE) { } else if (error_code == REDIS_CLUSTER_REDIR_UNSTABLE) {