diff --git a/src/evict.c b/src/evict.c index 39deb65a..980a91f7 100644 --- a/src/evict.c +++ b/src/evict.c @@ -444,9 +444,15 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev * Otehrwise if we are over the memory limit, but not enough memory * was freed to return back under the limit, the function returns C_ERR. */ int freeMemoryIfNeeded(void) { - /* By default slaves should ignore maxmemory and just be masters excat - * copies. */ - if (server.masterhost && server.repl_slave_ignore_maxmemory) return C_OK; + /* By default replicas should ignore maxmemory + * and just be masters exact copies. + * + * And don't care about mem if loading. */ + if (server.loading || + (server.masterhost && server.repl_slave_ignore_maxmemory)) + { + return C_OK; + } size_t mem_reported, mem_tofree, mem_freed; mstime_t latency, eviction_latency;