diff options
Diffstat (limited to 'src/server.c')
-rw-r--r-- | src/server.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server.c b/src/server.c index 9740475ca..0773113ff 100644 --- a/src/server.c +++ b/src/server.c @@ -3680,6 +3680,7 @@ void initServerConfig(void) { server.skip_checksum_validation = 0; server.saveparams = NULL; server.loading = 0; + server.async_loading = 0; server.loading_rdb_used_mem = 0; server.aof_state = AOF_OFF; server.aof_rewrite_base_size = 0; @@ -4252,6 +4253,7 @@ void initServer(void) { server.db[j].id = j; server.db[j].avg_ttl = 0; server.db[j].defrag_later = listCreate(); + server.db[j].slots_to_keys = NULL; /* Set by clusterInit later on if necessary. */ listSetFreeMethod(server.db[j].defrag_later,(void (*)(void*))sdsfree); } evictionPoolAlloc(); /* Initialize the LRU keys pool. */ @@ -5432,7 +5434,7 @@ int processCommand(client *c) { /* Loading DB? Return an error if the command has not the * CMD_LOADING flag. */ - if (server.loading && is_denyloading_command) { + if (server.loading && !server.async_loading && is_denyloading_command) { rejectCommand(c, shared.loadingerr); return C_OK; } @@ -6420,6 +6422,7 @@ sds genRedisInfoString(const char *section) { info = sdscatprintf(info, "# Persistence\r\n" "loading:%d\r\n" + "async_loading:%d\r\n" "current_cow_peak:%zu\r\n" "current_cow_size:%zu\r\n" "current_cow_size_age:%lu\r\n" @@ -6445,7 +6448,8 @@ sds genRedisInfoString(const char *section) { "aof_last_cow_size:%zu\r\n" "module_fork_in_progress:%d\r\n" "module_fork_last_cow_size:%zu\r\n", - (int)server.loading, + (int)(server.loading && !server.async_loading), + (int)server.async_loading, server.stat_current_cow_peak, server.stat_current_cow_bytes, server.stat_current_cow_updated ? (unsigned long) elapsedMs(server.stat_current_cow_updated) / 1000 : 0, |