summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2018-09-03 18:31:02 +0200
committerGitHub <noreply@github.com>2018-09-03 18:31:02 +0200
commit2b689ad641f19573b3b6141b45452da90ca32df4 (patch)
treeffb05f73b9d79de1abe641e940a749013bd8b405
parent3e7349fdaf8cdbf96e595750034af43e6d6c56f0 (diff)
parent2290c4bee1904d4418fd1fa9192a3fbc13bf38b0 (diff)
downloadredis-2b689ad641f19573b3b6141b45452da90ca32df4.tar.gz
Merge pull request #4418 from soloestoy/fix-multiple-unblock
fix multiple unblock for clientsArePaused()
-rw-r--r--src/networking.c6
-rw-r--r--src/scripting.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/networking.c b/src/networking.c
index 8e55ec902..824d88245 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -2134,9 +2134,9 @@ int clientsArePaused(void) {
while ((ln = listNext(&li)) != NULL) {
c = listNodeValue(ln);
- /* Don't touch slaves and blocked clients. The latter pending
- * requests be processed when unblocked. */
- if (c->flags & (CLIENT_SLAVE|CLIENT_BLOCKED)) continue;
+ /* Don't touch slaves and blocked or unblocked clients.
+ * The latter pending requests be processed when unblocked. */
+ if (c->flags & (CLIENT_SLAVE|CLIENT_BLOCKED|CLIENT_UNBLOCKED)) continue;
c->flags |= CLIENT_UNBLOCKED;
listAddNodeTail(server.unblocked_clients,c);
}
diff --git a/src/scripting.c b/src/scripting.c
index 4b36a085b..6c311dbe0 100644
--- a/src/scripting.c
+++ b/src/scripting.c
@@ -1367,7 +1367,7 @@ void evalGenericCommand(client *c, int evalsha) {
* script timeout was detected. */
aeCreateFileEvent(server.el,c->fd,AE_READABLE,
readQueryFromClient,c);
- if (server.masterhost && server.master) {
+ if (server.masterhost && server.master && !(server.master->flags & CLIENT_UNBLOCKED)) {
server.master->flags |= CLIENT_UNBLOCKED;
listAddNodeTail(server.unblocked_clients,server.master);
}