diff --git a/src/defrag.c b/src/defrag.c index 6cc100aef0..44f19f18ed 100644 --- a/src/defrag.c +++ b/src/defrag.c @@ -1241,7 +1241,7 @@ static doneStatus defragStageDbKeys(void *ctx, monotime endtime) { static doneStatus defragStageExpiresKvstore(void *ctx, monotime endtime) { defragKeysCtx *defrag_keys_ctx = ctx; redisDb *db = &server.db[defrag_keys_ctx->dbid]; - if (db->keys != defrag_keys_ctx->kvstate.kvs) { + if (db->expires != defrag_keys_ctx->kvstate.kvs) { /* There has been a change of the kvs (flushdb, swapdb, etc.). Just complete the stage. */ return DEFRAG_DONE; } diff --git a/tests/unit/memefficiency.tcl b/tests/unit/memefficiency.tcl index 88ccf25122..e192355b22 100644 --- a/tests/unit/memefficiency.tcl +++ b/tests/unit/memefficiency.tcl @@ -523,10 +523,10 @@ run_solo {defrag} { r config set activedefrag no wait_for_defrag_stop 500 100 r config resetstat - r config set active-defrag-threshold-lower 7 + r config set active-defrag-threshold-lower 5 r config set active-defrag-cycle-min 65 r config set active-defrag-cycle-max 75 - r config set active-defrag-ignore-bytes 1500kb + r config set active-defrag-ignore-bytes 1000kb r config set maxmemory 0 r config set hash-max-listpack-value 512 r config set hash-max-listpack-entries 10 @@ -597,7 +597,7 @@ run_solo {defrag} { } # wait for the active defrag to stop working - wait_for_defrag_stop 500 100 1.07 + wait_for_defrag_stop 500 100 1.05 # test the fragmentation is lower after 120 ;# serverCron only updates the info once in 100ms