diff --git a/src/cluster.cpp b/src/cluster.cpp index b86ad81d3..10f50f62f 100644 --- a/src/cluster.cpp +++ b/src/cluster.cpp @@ -5867,7 +5867,7 @@ clusterNode *getNodeByQuery(client *c, struct redisCommand *cmd, robj **argv, in multiState *ms, _ms; multiCmd mc; int i, slot = 0, migrating_slot = 0, importing_slot = 0, missing_keys = 0; - serverAssert(GlobalLocksAcquired()); + serverAssert((c->cmd->flags & CMD_ASYNC_OK) || GlobalLocksAcquired()); /* Allow any key to be set if a module disabled cluster redirections. */ if (g_pserver->cluster_module_flags & CLUSTER_MODULE_FLAG_NO_REDIRECTION) diff --git a/src/server.cpp b/src/server.cpp index eb4bc974a..9ebac4f45 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3858,6 +3858,9 @@ void initServer(void) { g_pserver->rgthreadvar[i].rgdbSnapshot = (const redisDbPersistentDataSnapshot**)zcalloc(sizeof(redisDbPersistentDataSnapshot*)*cserver.dbnum, MALLOC_LOCAL); serverAssert(g_pserver->rgthreadvar[i].rgdbSnapshot != nullptr); } + g_pserver->modulethreadvar.rgdbSnapshot = (const redisDbPersistentDataSnapshot**)zcalloc(sizeof(redisDbPersistentDataSnapshot*)*cserver.dbnum, MALLOC_LOCAL); + serverAssert(g_pserver->modulethreadvar.rgdbSnapshot != nullptr); + serverAssert(g_pserver->rgthreadvar[0].rgdbSnapshot != nullptr); /* Fixup Master Client Database */