diff --git a/src/networking.c b/src/networking.c index 9de105982..d59e49592 100644 --- a/src/networking.c +++ b/src/networking.c @@ -3654,7 +3654,7 @@ int postponeClientRead(client *c) { if (server.io_threads_active && server.io_threads_do_reads && !ProcessingEventsWhileBlocked && - !(c->flags & (CLIENT_MASTER|CLIENT_SLAVE|CLIENT_PENDING_READ))) + !(c->flags & (CLIENT_MASTER|CLIENT_SLAVE|CLIENT_PENDING_READ|CLIENT_BLOCKED))) { c->flags |= CLIENT_PENDING_READ; listAddNodeHead(server.clients_pending_read,c); @@ -3718,6 +3718,7 @@ int handleClientsWithPendingReadsUsingThreads(void) { c->flags &= ~CLIENT_PENDING_READ; listDelNode(server.clients_pending_read,ln); + serverAssert(!(c->flags & CLIENT_BLOCKED)); if (processPendingCommandsAndResetClient(c) == C_ERR) { /* If the client is no longer valid, we avoid * processing the client later. So we just go