[Drbd-dev] [PATCH] scripts: Updated rhcs_fence script
Vlastimil Holer
holer at ics.muni.cz
Wed Mar 13 15:02:05 CET 2013
cman_tool option -f is obsolete in current RHEL 6.x.
Syntax for kill action allows only:
-n <nodename> The name of the node to kill (can specify multiple times)
Although node is successfully fenced, rhcs_fence ends with failure
due to wrong $exit condition handling. Part of debug log:
rhcs_fence: 253; DEBUG: fence node2.localdomain dev 0.0 agent fence_ipmilan result: success
fence_node[28511]: fence node2.localdomain success
rhcs_fence: 253; DEBUG: fence node2.localdomain success
rhcs_fence: 267; DEBUG: Attempt to fence node: [node2.localdomain] exited with: [0]
rhcs_fence: 272; Attempt to fence: [node2.localdomain] failed!
kernel: d-con drbd0: helper command: /sbin/drbdadm fence-peer drbd0 exit code 1 (0x100)
kernel: d-con drbd0: fence-peer helper broken, returned 1
---
scripts/rhcs_fence | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/rhcs_fence b/scripts/rhcs_fence
index ca53678..1294660 100644
--- a/scripts/rhcs_fence
+++ b/scripts/rhcs_fence
@@ -1,8 +1,8 @@
#!/usr/bin/perl
#
# Author: Digimer (digimer at alteeve.com)
-# Version: 0.2.4
-# Released: 2012-01-20
+# Version: 0.2.5
+# Released: 2013-03-13
# License: GPL v2+
#
# This program ties Linbit's DRBD into Red Hat's RHCS's fence daemon via the
@@ -266,7 +266,7 @@ sub kill_target
if ($conf->{sys}{debug}) { to_log($conf, 0, __LINE__, "DEBUG: Attempt to fence node: [$remote_node] exited with: [$sc_exit]"); }
# Exit.
- if (not $exit)
+ if ($exit)
{
if ($conf->{sys}{debug}) { to_log($conf, 1, __LINE__, "Attempt to fence: [$remote_node] failed!"); }
}
@@ -300,7 +300,7 @@ sub eject_target
# next.
if ($conf->{sys}{debug}) { to_log($conf, 0, __LINE__, "Target node: [$remote_node] is a cluster member, attempting to eject."); }
$sc=IO::Handle->new();
- $shell_call="$conf->{path}{cman_tool} kill -f $remote_node";
+ $shell_call="$conf->{path}{cman_tool} kill -n $remote_node";
if ($conf->{sys}{debug}) { to_log($conf, 0, __LINE__, "DEBUG: shell call: [$shell_call]"); }
open ($sc, "$shell_call 2>&1 |") or to_log($conf, 1, __LINE__, "Failed to call: [$sc], error was: $!");
while(<$sc>)
--
1.8.1.4
More information about the drbd-dev
mailing list