From 6d691046e7b36f8de9ed3ef3444ef0412d4be0d2 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Thu, 8 Jun 2017 14:45:43 +1000 Subject: [PATCH 1/2] ctdb-scripts: NFS call-out failures should cause event failure Failures in startup/shutdown/releaseip/takeip are currently incorrectly ignored. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12837 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs (cherry picked from commit 22f2068d456759612d340fdcc56276f39a710426) --- ctdb/config/events.d/60.nfs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ctdb/config/events.d/60.nfs b/ctdb/config/events.d/60.nfs index 15948f5..9198413 100755 --- a/ctdb/config/events.d/60.nfs +++ b/ctdb/config/events.d/60.nfs @@ -258,20 +258,20 @@ ctdb_service_check_reconfigure case "$1" in startup) - nfs_callout "$@" + nfs_callout "$@" || exit $? ;; shutdown) - nfs_callout "$@" + nfs_callout "$@" || exit $? ;; takeip) - nfs_callout "$@" + nfs_callout "$@" || exit $? ctdb_service_set_reconfigure ;; releaseip) - nfs_callout "$@" + nfs_callout "$@" || exit $? ctdb_service_set_reconfigure ;; -- 2.9.4 From 8d0d5891469796f49dfd41f720c7e5adb4d1b71f Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Fri, 9 Jun 2017 10:57:28 +1000 Subject: [PATCH 2/2] ctdb-tests: Add more NFS eventscript tests for call-out failures BUG: https://bugzilla.samba.org/show_bug.cgi?id=12837 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs (cherry picked from commit 323291a46e26e0493d43052550e57e2989b83b97) --- ctdb/tests/eventscripts/06.nfs.releaseip.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/06.nfs.releaseip.002.sh | 12 ++++++++++++ ctdb/tests/eventscripts/06.nfs.takeip.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/06.nfs.takeip.002.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.monitor.109.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.releaseip.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.releaseip.002.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.shutdown.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.shutdown.002.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.startup.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.startup.002.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.takeip.001.sh | 12 ++++++++++++ ctdb/tests/eventscripts/60.nfs.takeip.002.sh | 12 ++++++++++++ 13 files changed, 156 insertions(+) create mode 100755 ctdb/tests/eventscripts/06.nfs.releaseip.001.sh create mode 100755 ctdb/tests/eventscripts/06.nfs.releaseip.002.sh create mode 100755 ctdb/tests/eventscripts/06.nfs.takeip.001.sh create mode 100755 ctdb/tests/eventscripts/06.nfs.takeip.002.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.monitor.109.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.releaseip.001.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.releaseip.002.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.shutdown.001.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.shutdown.002.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.startup.001.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.startup.002.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.takeip.001.sh create mode 100755 ctdb/tests/eventscripts/60.nfs.takeip.002.sh diff --git a/ctdb/tests/eventscripts/06.nfs.releaseip.001.sh b/ctdb/tests/eventscripts/06.nfs.releaseip.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/06.nfs.releaseip.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/06.nfs.releaseip.002.sh b/ctdb/tests/eventscripts/06.nfs.releaseip.002.sh new file mode 100755 index 0000000..c0b8939 --- /dev/null +++ b/ctdb/tests/eventscripts/06.nfs.releaseip.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes releaseip-pre to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo releaseip-pre ; false" + +required_result 1 "releaseip-pre" +simple_test diff --git a/ctdb/tests/eventscripts/06.nfs.takeip.001.sh b/ctdb/tests/eventscripts/06.nfs.takeip.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/06.nfs.takeip.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/06.nfs.takeip.002.sh b/ctdb/tests/eventscripts/06.nfs.takeip.002.sh new file mode 100755 index 0000000..1baf351 --- /dev/null +++ b/ctdb/tests/eventscripts/06.nfs.takeip.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes takeip-pre to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo takeip-pre ; false" + +required_result 1 "takeip-pre" +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.monitor.109.sh b/ctdb/tests/eventscripts/60.nfs.monitor.109.sh new file mode 100755 index 0000000..a86f6d9 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.monitor.109.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes monitor-post to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo monitor-post ; false" + +required_result 1 "monitor-post" +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.releaseip.001.sh b/ctdb/tests/eventscripts/60.nfs.releaseip.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.releaseip.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.releaseip.002.sh b/ctdb/tests/eventscripts/60.nfs.releaseip.002.sh new file mode 100755 index 0000000..68f636f --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.releaseip.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes releaseip to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo releaseip ; false" + +required_result 1 "releaseip" +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.shutdown.001.sh b/ctdb/tests/eventscripts/60.nfs.shutdown.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.shutdown.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.shutdown.002.sh b/ctdb/tests/eventscripts/60.nfs.shutdown.002.sh new file mode 100755 index 0000000..b8bb560 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.shutdown.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes shutdown to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo shutdown ; false" + +required_result 1 "shutdown" +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.startup.001.sh b/ctdb/tests/eventscripts/60.nfs.startup.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.startup.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.startup.002.sh b/ctdb/tests/eventscripts/60.nfs.startup.002.sh new file mode 100755 index 0000000..e020c9d --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.startup.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes startup to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo startup ; false" + +required_result 1 "startup" +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.takeip.001.sh b/ctdb/tests/eventscripts/60.nfs.takeip.001.sh new file mode 100755 index 0000000..8f590b0 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.takeip.001.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'true'" + +setup_nfs + +export CTDB_NFS_CALLOUT="true" + +ok_null +simple_test diff --git a/ctdb/tests/eventscripts/60.nfs.takeip.002.sh b/ctdb/tests/eventscripts/60.nfs.takeip.002.sh new file mode 100755 index 0000000..4fc3f72 --- /dev/null +++ b/ctdb/tests/eventscripts/60.nfs.takeip.002.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "callout is 'false', causes takeip to fail" + +setup_nfs + +export CTDB_NFS_CALLOUT="echo takeip ; false" + +required_result 1 "takeip" +simple_test -- 2.9.4