From 5fe4a2313177a8c9bcd231dacda38317da17a3cf 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 1125b86f..5c8f56db 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1689,7 +1689,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); } }