1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/ctdb/tests/simple
Martin Schwenke fdc0dbee29 ctdb-tests: Add synchronisation points in reload IPs tests
"ctdb reloadips" use of ipreallocate() can result in a spurious
takeover runs.  This can cause a subsequent "ctdb reloadips" to fail
to disable takeover runs (due to there being one already in progress).

There are various possible improvements but a proper fix probably
requires a protocol change.  That would mean receiving an ACK for a
takeover run request to indicate that the request will be processes
and then a broadcast to indicate a completed takeover run.

There are various other partial fixes (e.g. de-duping queued takeover
run requests against those in the in-progess queue) and workarounds
(e.g. always do a double ipreallocate() in the tool, which should
absorb the spurious takeover run).

However, this is unlikely to be a real-world problem.  Real use cases
should not involve repeatedly reloading the IP configuration.

Instead, work around the problem of flaky tests by manually adding
"ctdb sync" commands to cause extra no-op takeover runs.  These should
not add spurious takeover runs and will create synchronisation points
to help avoid the issue.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2017-02-24 07:47:11 +01:00
..
scripts ctdb-recoverd: Integrate takeover helper 2016-12-19 04:07:08 +01:00
00_ctdb_init.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
00_ctdb_onnode.sh ctdb/tests/integration: Remove the time logging code 2013-12-05 00:40:37 +01:00
01_ctdb_version.sh ctdb-tests: Fix the tests for waf build 2014-06-20 23:38:10 +02:00
02_ctdb_listvars.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
03_ctdb_getvar.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
04_ctdb_setvar.sh ctdb-takeover: IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs 2016-12-19 04:07:08 +01:00
05_ctdb_listnodes.sh ctdb-tests: Extend regexp to match IPv6 addresses 2014-12-05 21:02:40 +01:00
06_ctdb_getpid.sh ctdb-tools: Simplify "ctdb getpid" output format 2016-07-25 21:29:45 +02:00
07_ctdb_process_exists.sh ctdb-tool: Simplify "ctdb process-exists" 2016-07-25 21:29:44 +02:00
08_ctdb_isnotrecmaster.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
09_ctdb_ping.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
11_ctdb_ip.sh ctdb-tests: Change "ctdb ip -n all" to "ctdb ip all" 2015-10-23 03:43:26 +02:00
12_ctdb_getdebug.sh ctdb-tools: Simplify "ctdb getdebug" output format 2016-07-25 21:29:46 +02:00
13_ctdb_setdebug.sh ctdb-logging: Use Samba's debug levels 2016-12-05 08:09:22 +01:00
14_ctdb_statistics.sh ctdb-tests: Drop simple uses of "ctdb -n all ..." from simple tests 2015-10-23 03:43:26 +02:00
15_ctdb_statisticsreset.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
16_ctdb_config_add_ip.sh ctdb-tools: Addition of IPs is deferred until the next takeover run 2016-08-17 05:28:19 +02:00
17_ctdb_config_delete_ip.sh ctdb-daemon: Deletion of IPs is deferred until the next takeover run 2016-07-28 05:00:17 +02:00
18_ctdb_reloadips.sh ctdb-tests: Add synchronisation points in reload IPs tests 2017-02-24 07:47:11 +01:00
19_ip_takeover_noop.sh ctdb-tests: Add new public IP takeover no-op test 2016-09-14 12:30:30 +02:00
20_delip_iface_gc.sh ctdb-daemon: Deletion of IPs is deferred until the next takeover run 2016-07-28 05:00:17 +02:00
23_ctdb_moveip.sh ctdb-takeover: IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs 2016-12-19 04:07:08 +01:00
24_ctdb_getdbmap.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
25_dumpmemory.sh ctdb-tests: Drop simple uses of "ctdb -n all ..." from simple tests 2015-10-23 03:43:26 +02:00
26_ctdb_config_check_error_on_unreachable_ctdb.sh tests/simple: Unreachable node test should wait for recovery to complete 2013-08-14 15:57:03 +10:00
27_ctdb_detach.sh ctdb-tests: Improve ctdb detach test 2016-02-12 05:32:16 +01:00
28_zero_eventscripts.sh ctdb-tests: Do not remove event script dir before shutting down ctdb 2016-12-16 08:42:32 +01:00
31_ctdb_disable.sh ctdb-tests: Clean up some tests where IP movement is checked 2014-09-23 08:06:12 +02:00
32_ctdb_enable.sh ctdb-tests: Clean up some tests where IP movement is checked 2014-09-23 08:06:12 +02:00
35_ctdb_getreclock.sh ctdb-tests: Replace "ctdb setrelock" test with "ctdb getreclock" test 2016-06-08 00:51:28 +02:00
41_ctdb_stop.sh ctdb-tests: Clean up some tests where IP movement is checked 2014-09-23 08:06:12 +02:00
42_ctdb_continue.sh ctdb-tests: Clean up some tests where IP movement is checked 2014-09-23 08:06:12 +02:00
43_stop_recmaster_yield.sh tests: Rename ctdb_test_functions.bash to integration.bash 2012-04-27 15:40:43 +10:00
51_message_ring.sh ctdb-tests: Clean up and rename simple message_ring test 2016-08-08 08:17:32 +02:00
52_fetch_ring.sh ctdb-tests: Clean up and rename simple fetch_ring test 2016-08-08 08:17:32 +02:00
53_transaction_loop.sh ctdb-tests: Clean up and rename simple transaction_loop test 2016-08-08 08:17:33 +02:00
54_transaction_loop_recovery.sh ctdb-tests: Clean up and rename simple transaction_loop recovery test 2016-08-08 08:17:33 +02:00
55_ctdb_ptrans.sh ctdb-tests: Remove unnecessary \ from transaction data 2016-02-12 05:32:16 +01:00
58_ctdb_restoredb.sh ctdb-tests: Add a test for ctdb restoredb 2014-07-07 16:06:39 +02:00
60_recoverd_missing_ip.sh ctdb-tool: Drop disablescript, enablescript and eventscript commands 2016-12-18 14:23:23 +01:00
70_recoverpdbbyseqnum.sh ctdb-daemon: Mark RecoverPDBBySeqNum tunable deprecated 2016-11-25 08:13:59 +01:00
71_ctdb_wipedb.sh ctdb-tests: Check that ctdb wipedb cleans the database 2014-07-07 13:29:50 +02:00
72_update_record_persistent.sh ctdb-tests: Replace ctdb_update_record_persistent with update_record_persistent 2016-07-22 06:50:22 +02:00
73_tunable_NoIPTakeover.sh ctdb-takeover: NoIPTakeover is global across cluster 2016-12-19 04:07:08 +01:00
75_readonly_records_basic.sh ctdb-tests: Replace ctdb_update_record with update_record using new client API 2016-07-22 06:50:22 +02:00
76_ctdb_pdb_recovery.sh ctdb-daemon: Mark RecoverPDBBySeqNum tunable deprecated 2016-11-25 08:13:59 +01:00
77_ctdb_db_recovery.sh ctdb-tests: CTDB tool should always be invoked as $CTDB instad of ctdb 2013-11-27 18:46:15 +01:00
78_ctdb_large_db_recovery.sh ctdb-tests: Add a test for recovery of large databases 2016-03-25 03:26:15 +01:00
80_ctdb_traverse.sh ctdb-tests: CTDB tool should always be invoked as $CTDB instad of ctdb 2013-11-27 18:46:15 +01:00
99_daemons_shutdown.sh ctdb/tests/integration: Update daemons shutdown pseudo-test 2013-12-05 00:43:12 +01:00
functions ctdb-scripts: Update important installed files to use build-time defaults 2015-09-15 08:56:21 +02:00
README tests: Update README files and add new README files where missing 2012-04-27 15:40:43 +10:00

Simple integration tests.  These can be run against a pool of CTDB
daemons running on the local machine - aka "local daemons".