Bug 1006471

Summary: unable to set transient node attributes on container resource's remote-node
Product: Red Hat Enterprise Linux 7 Reporter: David Vossel <dvossel>
Component: pacemakerAssignee: David Vossel <dvossel>
Status: CLOSED CURRENTRELEASE QA Contact: Cluster QE <mspqa-list>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: cluster-maint, djansa, dvossel, fdinitto, jkortus, mnovacek
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pacemaker-1.1.10-15.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 09:56:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description David Vossel 2013-09-10 16:37:50 UTC
Description of problem:
Setting a transient node attribute on a container resource's remote-node fails and can potentially cause the crmd to crash.

This is important because transient node attributes are required for most multistate resources to work properly.

How reproducible:
100%

Steps to Reproduce:
1. create a container resource
2. attempt to set a transient attribute on the container resource's remote-node

example, set some dummy value on remote-node defined by a container resource called 'remote1'

crm_attribute -l reboot -N remote1 -n a_key -v a_value 

Actual results:

The key value pair is not set in the remote-node's transient attribute status section of the cib.

Expected results:

Transient attributes get set in the remote-nodes status section of the cib.

Additional info:

This issue has already been fixed upstream by the following patches.

https://github.com/davidvossel/pacemaker/commit/65ef2c7d8d931a149db3cf8be41225410a27e182
https://github.com/davidvossel/pacemaker/commit/f4be83732ba7c00ae89819ad3e8cb8c099e684d2

Comment 2 David Vossel 2013-09-25 14:55:12 UTC
I am including the CTS test I developed upstream that caught this bug with this fix.

Comment 5 michal novacek 2014-03-28 10:59:27 UTC
I have verified that the transcient attributes can be set on a cotainer resource with pacemaker-1.1.10-29.el7.x86_64.

----

# crm_attribute -N duck-03-node01 -n a_key -v a_value
Remote-nodes do not maintain permanent attributes, 'a_key=a_value' will be \
removed after duck-03-node01 reboots.

# pcs cluster cib
...
      <transient_attributes id="duck-03-node01">
        <instance_attributes id="status-duck-03-node01">
          <nvpair id="status-duck-03-node01-a_key" name="a_key" value="a_value"/>
        </instance_attributes>
      </transient_attributes>

duck-03# pcs status
Cluster name: STSRHTS30970
Last updated: Fri Mar 28 11:54:36 2014
Last change: Fri Mar 28 11:49:25 2014 via cibadmin on duck-03.cluster-qe.lab.eng.brq.redhat.com
Stack: corosync
Current DC: duck-03.cluster-qe.lab.eng.brq.redhat.com (1) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
4 Resources configured

Online: [ duck-03.cluster-qe.lab.eng.brq.redhat.com ]
Containers: [ duck-03-node01:R-duck-03-node01-lxc ]

Full list of resources:

 virt-fencing   (stonith:fence_ipmilan):        Started duck-03.cluster-qe.lab.eng.brq.redhat.com 
 R-duck-03-node01-lxc   (ocf::heartbeat:VirtualDomain): Started duck-03.cluster-qe.lab.eng.brq.redhat.com 
 le-dummy       (ocf::heartbeat:Dummy): Started duck-03-node01 

PCSD Status:
  duck-03.cluster-qe.lab.eng.brq.redhat.com: Online

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

# pcs resource show R-duck-03-node01-lxc le-dummy
 Resource: R-duck-03-node01-lxc (class=ocf provider=heartbeat type=VirtualDomain)
  Attributes: hypervisor=lxc:/// config=/var/lib/libvirt/lxc/duck-03-node01.xml force_stop=true 
  Meta Attrs: remote-node=duck-03-node01 
  Operations: start interval=0s timeout=90000 (R-duck-03-node01-lxc-start-timeout-90000)
              stop interval=0s timeout=90000 (R-duck-03-node01-lxc-stop-timeout-90000)
              monitor interval=10 timeout=30 (R-duck-03-node01-lxc-monitor-interval-10)
 Resource: le-dummy (class=ocf provider=heartbeat type=Dummy)
  Operations: start interval=0s timeout=20 (le-dummy-start-timeout-20)
              stop interval=0s timeout=20 (le-dummy-stop-timeout-20)

# crm_attribute -N duck-03-node01 -n a_key -v a_value
Remote-nodes do not maintain permanent attributes, 'a_key=a_value' will be \
removed after duck-03-node01 reboots.

# pcs cluster cib
...
      <transient_attributes id="duck-03-node01">
        <instance_attributes id="status-duck-03-node01">
          <nvpair id="status-duck-03-node01-a_key" name="a_key" value="a_value"/>
        </instance_attributes>
      </transient_attributes>

Comment 6 Ludek Smid 2014-06-13 09:56:52 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.