From 8a57969fd75db01b881d438200911d95bdead293 Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Thu, 23 Jul 2020 13:06:24 +0300 Subject: [PATCH] Stabilize bgsave test that sometimes fails with valgrind (#7559) on ci.redis.io the test fails a lot, reporting that bgsave didn't end. increaseing the timeout we wait for that bgsave to get aborted. in addition to that, i also verify that it indeed got aborted by checking that the save counter wasn't reset. add another test to verify that a successful bgsave indeed resets the change counter. --- tests/integration/rdb.tcl | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/integration/rdb.tcl b/tests/integration/rdb.tcl index b176bf199..6535cd089 100644 --- a/tests/integration/rdb.tcl +++ b/tests/integration/rdb.tcl @@ -118,16 +118,34 @@ start_server_and_kill_it [list "dir" $server_path] { start_server {} { test {Test FLUSHALL aborts bgsave} { + # 1000 keys with 1ms sleep per key shuld take 1 second r config set rdb-key-save-delay 1000 r debug populate 1000 r bgsave assert_equal [s rdb_bgsave_in_progress] 1 r flushall - after 200 - assert_equal [s rdb_bgsave_in_progress] 0 + # wait half a second max + wait_for_condition 5 100 { + [s rdb_bgsave_in_progress] == 0 + } else { + fail "bgsave not aborted" + } + # veirfy that bgsave failed, by checking that the change counter is still high + assert_lessthan 999 [s rdb_changes_since_last_save] # make sure the server is still writable r set x xx } + + test {bgsave resets the change counter} { + r config set rdb-key-save-delay 0 + r bgsave + wait_for_condition 5 100 { + [s rdb_bgsave_in_progress] == 0 + } else { + fail "bgsave not aborted" + } + assert_equal [s rdb_changes_since_last_save] 0 + } } test {client freed during loading} {