[Pacemaker] [Spam] Re: Apparent error passing stonith resource parameters (external/libvirt)

Nathan Bird nathan at acceleration.net
Tue Aug 28 14:28:59 EDT 2012


On 08/27/2012 05:46 AM, Dejan Muhamedagic wrote:
> Hi,
>
> On Fri, Aug 24, 2012 at 11:25:19AM -0400, Nathan Bird wrote:
>> On 08/24/2012 10:47 AM, Nathan Bird wrote:
>>> I'm trying to setup an external/libvirt stonith fencing
>>> thingiemadoodle but ran into an error
>>>
>>> My pacemaker configuration is (read back out it looks the same):
>>>
>>> primitive p-fence-om0101 stonith:external/libvirt \
>>>   params hostlist="proxy1 mysql1" \
>>> hypervisor_uri="qemu+ssh://root@om01/system?keyfile=/root/.ssh/om01" \
>>>   op monitor interval="60"
>>> #there's also a location rule that is working fine
>>>
>>> If i just try to connect with libvirt that uri is correct. When
>>> the stonith script runs though it is getting an incomplete value
>>> "qemu+ssh://root@om01/system?keyfile" observed via log messages.
> lrmd passes the correct value, so it must happen later.
>
> fence_legacy looks like a prime suspect:
>
>          ($name,$val)=split /\s*=\s*/, $opt;
>


Yeah, that seems like a likely candidate; when I hit the error I said to 
myself "I bet someone is parsing using a regexp." :-)


>> I worked around this by copying the resource file into a new one
>> named after the hypervisor I'm trying to talk to and embedding the
>> correct uri in the file.
> So, did the new script work?


Yeah, worked just fine. I simply have a declaration at the top of the 
script hypervisor_uri="..." and the rest of the script then has the 
correct one. Updated the primitive declaration to be stonith:external/om1.


>> Additionally I did a bit more bash quoting in the file, e.g.:
>> -    out=$($VIRSH -c $hypervisor_uri start $domain_id 2>&1)
>> +    out=$($VIRSH -c "$hypervisor_uri" start $domain_id 2>&1)
>>
>>
> Quotes won't hurt, but won't help either. At any rate, we should
> add the quotes for more exotic URIs.
>


Yeah, you're probably right that this url would pass through without the 
quotes. My experience with shell scripting has given me the superstition 
that an unquoted variable is just a bug waiting to happen.

Nathan






More information about the Pacemaker mailing list