From 2d7d75adb3273f919b01d11a70a9a0738e82ed9c Mon Sep 17 00:00:00 2001 From: antirez Date: Sat, 21 Mar 2015 09:03:46 +0100 Subject: [PATCH] Net: clientsArePaused() should not touch blocked clients. When the list of unblocked clients were processed, btype was set to blocking type none, but the client remained flagged with REDIS_BLOCKED. When timeout is reached (or when the client disconnects), unblocking it will trigger an assertion. There is no need to process pending requests from blocked clients, so now clientsArePaused() just avoid touching blocked clients. Close #2467. --- src/networking.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/networking.c b/src/networking.c index 5a780a59..9f55ecf3 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1702,7 +1702,7 @@ int clientsArePaused(void) { while ((ln = listNext(&li)) != NULL) { c = listNodeValue(ln); - if (c->flags & REDIS_SLAVE) continue; + if (c->flags & (REDIS_SLAVE|REDIS_BLOCKED)) continue; listAddNodeTail(server.unblocked_clients,c); } }