diff --git a/src/networking.c b/src/networking.c index 8e55ec90..824d8824 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 4b36a085..6c311dbe 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); }