[Drbd-dev] [PATCH] scripts: Updated rhcs_fence script

Madison Kelly mkelly at alteeve.ca
Thu Mar 14 00:05:56 CET 2013


On 03/13/2013 03:54 PM, Lars Ellenberg wrote:
> On Wed, Mar 13, 2013 at 03:02:05PM +0100, Vlastimil Holer wrote:
>> 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
>
> Nope, see upstream of that script:
> https://github.com/digimer/rhcs_fence/commits/master
>
>
>>   # 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!"); }
>>   	}
>
> That part has been fixed by the original Author already,
> in a better way. We just did not notice, and did not update the
> rhcs_fence as shipped with the DRBD source and package.
>
> But that one:
>
>> @@ -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";
>
> digimer, what do you say?
>
>
>>   		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
>
>
> Thanks,
>
> 	Lars
>

Strike the delay, I've made the changes and pushed to github 
(https://github.com/digimer/rhcs_fence).

-- 
Alteeve's Niche!
Madison Kelly -  647-501-5200
https://alteeve.ca/


More information about the drbd-dev mailing list