From 25f017e563c0e1ef9837604a96e4655b021bad32 Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 15 May 2018 16:03:56 +0200 Subject: [PATCH] ZPOP: fix replication of blocking ZPOP. --- src/blocked.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/blocked.c b/src/blocked.c index f4b47bb8..023fba0c 100644 --- a/src/blocked.c +++ b/src/blocked.c @@ -333,10 +333,18 @@ void handleClientsBlockedOnKeys(void) { unblockClient(receiver); genericZpopCommand(receiver,&rl->key,1,where,1,NULL); - propagate(where == ZSET_MIN ? - server.zpopminCommand : server.zpopmaxCommand, - receiver->db->id,receiver->argv,receiver->argc, - PROPAGATE_AOF|PROPAGATE_REPL); + /* Replicate the command. */ + robj *argv[2]; + struct redisCommand *cmd = where == ZSET_MIN ? + server.zpopminCommand : + server.zpopmaxCommand; + argv[0] = createStringObject(cmd->name,strlen(cmd->name)); + argv[1] = rl->key; + incrRefCount(rl->key); + propagate(cmd,receiver->db->id, + argv,2,PROPAGATE_AOF|PROPAGATE_REPL); + decrRefCount(argv[0]); + decrRefCount(argv[1]); } } }