Don't reset the client when processCommand returns REDIS_ERR
This commit is contained in:
parent
9ddc6fded8
commit
c5a32adaed
@ -820,9 +820,13 @@ void processInputBuffer(redisClient *c) {
|
||||
}
|
||||
|
||||
/* Multibulk processing could see a <= 0 length. */
|
||||
if (c->argc > 0)
|
||||
processCommand(c);
|
||||
resetClient(c);
|
||||
if (c->argc == 0) {
|
||||
resetClient(c);
|
||||
} else {
|
||||
/* Only reset the client when the command was executed. */
|
||||
if (processCommand(c) == REDIS_OK)
|
||||
resetClient(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -955,7 +955,7 @@ int processCommand(redisClient *c) {
|
||||
addReply(c,shared.queued);
|
||||
} else {
|
||||
if (server.vm_enabled && server.vm_max_threads > 0 &&
|
||||
blockClientOnSwappedKeys(c,cmd)) return 1;
|
||||
blockClientOnSwappedKeys(c,cmd)) return REDIS_ERR;
|
||||
call(c,cmd);
|
||||
}
|
||||
return REDIS_OK;
|
||||
|
Loading…
x
Reference in New Issue
Block a user