Skip to content

Commit 510265f

Browse files
committed
Update level but test case fail
1 parent 728774b commit 510265f

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/evict.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev
413413

414414
/* Compute the ratio of memory usage. */
415415
if (level) {
416-
*level = (float)mem_used / (float)server.maxmemory_available;
416+
*level = (float)mem_used / (float)server.maxmemory;
417417
}
418418

419419
if (mem_reported <= server.maxmemory_available) return C_OK;
@@ -729,8 +729,18 @@ int performEvictions(void) {
729729
}
730730
}
731731
/* at this point, the memory is OK, or we have reached the time limit */
732+
if (server.maxmemory_available) {
733+
size_t mem_used = zmalloc_used_memory();
734+
size_t overhead = freeMemoryGetNotCountedMemory();
735+
mem_used = (mem_used > overhead) ? mem_used - overhead : 0;
736+
if (mem_used > server.maxmemory) {
737+
result = EVICT_FAIL;
738+
goto cant_free;
739+
}
740+
}
732741
result = (isEvictionProcRunning) ? EVICT_RUNNING : EVICT_OK;
733742

743+
734744
cant_free:
735745
if (result == EVICT_FAIL) {
736746
/* At this point, we have run out of evictable items. It's possible

0 commit comments

Comments
 (0)