summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2018-12-12 11:29:10 +0100
committerGitHub <noreply@github.com>2018-12-12 11:29:10 +0100
commit7ae184bfea90cf3e146ac06af0cc5c04d7628a22 (patch)
tree139d61d9bd7d458bcd6702cad3101d569b2dde37
parent03e2bb0cfd1ad6dba920e72b3d212cc3abb97d98 (diff)
parentb9cd89d1089a488b82517ad8f7899dde10cf7c25 (diff)
downloadredis-7ae184bfea90cf3e146ac06af0cc5c04d7628a22.tar.gz
Merge pull request #5689 from soloestoy/donot-evict-when-AOF-loading
evict: don't care about mem if loading
-rw-r--r--src/evict.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/evict.c b/src/evict.c
index 39deb65a6..980a91f79 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;