ctdb-tests: Handle interactions with monitor events
authorMartin Schwenke <martin@meltin.net>
Wed, 12 Feb 2014 04:33:19 +0000 (15:33 +1100)
committerAmitay Isaacs <amitay@samba.org>
Thu, 13 Feb 2014 03:05:57 +0000 (04:05 +0100)
In the first case, reconfiguration can longer happen in a monitor
event, so this is no longer a problem.  Drop it.

Running a monitor event by hand no longer cancels the existing monitor
event.  Instead the hand-run event fails.  So do this differently and
just wait for a monitor event before continuing.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Thu Feb 13 04:05:57 CET 2014 on sn-devel-104

ctdb/tests/simple/60_recoverd_missing_ip.sh

index 0734aeef8a1b02331172e412160f8d52487fe7a3..88e450227b4096f38c0dd837d2bf3cdaf7afb0de 100755 (executable)
@@ -37,10 +37,6 @@ fi
 
 echo "$test_ip/$mask is on $iface"
 
-# Push out the next monitor event so it is less likely to be cancelled
-# and result in services not being restarted properly.
-try_command_on_node $test_node $CTDB eventscript monitor
-
 echo "Deleting IP $test_ip from all nodes"
 try_command_on_node -v $test_node $CTDB delip -n all $test_ip
 
@@ -61,9 +57,9 @@ ctdb_test_exit_hook_add my_exit_hook
 # delips is complete.
 try_command_on_node $test_node $CTDB sync
 
-# This effectively cancels any monitor event that is in progress and
-# runs a new one
-try_command_on_node $test_node $CTDB eventscript monitor
+# Wait for a monitor event.  Then the next steps are unlikely to occur
+# in the middle of a monitor event and will have the expected effect.
+wait_for_monitor_event $test_node
 
 if [ -z "$TEST_LOCAL_DAEMONS" ] ; then
     # Stop monitor events from bringing up the link status of an interface