ctdb-tests: Clear deleted record via recovery instead of vacuuming
authorMartin Schwenke <martin@meltin.net>
Tue, 13 Aug 2019 04:45:33 +0000 (14:45 +1000)
committerMartin Schwenke <martins@samba.org>
Wed, 21 Aug 2019 13:06:57 +0000 (13:06 +0000)
This test has been flapping because sometimes the record is not
vacuumed within the expected time period, perhaps even because the
check for the record can interfere with vacuuming.  However, instead
of waiting for vacuuming the record can be cleared by doing a
recovery.  This should be much more reliable.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14085
RN: Fix flapping CTDB tests

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Wed Aug 21 13:06:57 UTC 2019 on sn-devel-184

ctdb/tests/simple/69_recovery_resurrect_deleted.sh

index 8126c49b83c0afc364c46b7f6290df3edcfa8164..f6c72c59f2af1b7a88895cfc3811b2917b9b0b85 100755 (executable)
@@ -54,18 +54,11 @@ database_has_zero_records ()
        return 0
 }
 
-echo "Get vacuum interval"
-try_command_on_node -v $second $CTDB getvar VacuumInterval
-vacuum_interval="${out#* = }"
-
-echo "Wait until vacuuming deletes the record on active nodes"
-# Why 4?  Steps are:
-# 1. Original node processes delete queue, asks lmaster to fetch
-# 2. lmaster recoverd fetches
-# 3. lmaster processes delete queue
-# If vacuuming is just missed then need an extra interval
-t=$((vacuum_interval * 4))
-wait_until "${t}/10" database_has_zero_records
+echo "Trigger a recovery"
+try_command_on_node "$second" $CTDB recover
+
+echo "Checking that database has 0 records"
+database_has_zero_records
 
 echo "Continue node ${first}"
 try_command_on_node $first $CTDB continue