Bug 1187571

Summary: ungrouping a resource from a cloned group produces invalid CIB when other resources exist in that group
Product: Red Hat Enterprise Linux 7 Reporter: Radek Steiger <rsteiger>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.1CC: cfeist, cluster-maint, tojeline
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.140-1.el7 Doc Type: Bug Fix
Doc Text:
Cause: User removes a resource from a cloned group. Consequence: Pcs produces an invalid CIB which is rejected by the cluster, so the resource is not removed from the cloned group. Fix: Detect that the group is cloned and remove the resource from the group properly. Result: Resource is removed from the cloned group properly.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 09:34:32 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:
Embargoed:
Attachments:
Description Flags
proposed fix none

Description Radek Steiger 2015-01-30 12:30:14 UTC
> Description of problem:

It is not possible to remove a resource from a group using 'pcs resource unclone' when the group is cloned and at the same time other resources exist in this group.


> Version-Release number of selected component (if applicable):

pcs-0.9.137-13.el7


> How reproducible:

Always


> Steps to Reproduce:

1. pcs resource create dummyX Dummy --group groupX
2. pcs resource create dummyY Dummy --group groupX
3. pcs resource clone groupX
4. pcs resource ungroup groupX dummyY


> Actual results:

# pcs resource ungroup groupX dummyY
Error: Unable to update cib
Call cib_replace failed (-203): Update does not conform to the configured schema
...

The CIB snippet looks like this - the dummyY resource is moved out of the groupX, but only to be left inside the clone, which is not valid:

<clone id="groupX-clone">
  <group id="groupX">
    <primitive class="ocf" id="dummyX" provider="heartbeat" type="Dummy">
      <instance_attributes id="dummyX-instance_attributes"/>
      <operations/>
    </primitive>
  </group>
  <meta_attributes id="groupX-clone-meta"/>
  <primitive class="ocf" id="dummyY" provider="heartbeat" type="Dummy">
    <instance_attributes id="dummyY-instance_attributes"/>
    <operations/>
  </primitive>
</clone>

Comment 1 Tomas Jelinek 2015-02-20 13:18:54 UTC
Created attachment 993907 [details]
proposed fix

Comment 3 Tomas Jelinek 2015-06-04 14:43:19 UTC
Before Fix:
[root@rh71-node1 ~]# rpm -q pcs
pcs-0.9.137-13.el7_1.2.x86_64
[root@rh71-node1:~]# rpm -q pcs
pcs-0.9.140-1.el6.x86_64
[root@rh71-node1:~]# pcs resource create d1 dummy --group dummies
[root@rh71-node1:~]# pcs resource create d2 dummy --group dummies
[root@rh71-node1:~]# pcs resource clone dummies
[root@rh71-node1:~]# pcs resource
 Clone Set: dummies-clone [dummies]
     Started: [ rh71-node1 rh71-node2 rh71-node3 ]
[root@rh71-node1:~]# pcs resource ungroup dummies d2
Error: Unable to update cib
Call cib_replace failed (-203): Update does not conform to the configured schema
...



After Fix:
[root@rh71-node1:~]# rpm -q pcs
pcs-0.9.140-1.el6.x86_64
[root@rh71-node1:~]# pcs resource create d1 dummy --group dummies
[root@rh71-node1:~]# pcs resource create d2 dummy --group dummies
[root@rh71-node1:~]# pcs resource clone dummies
[root@rh71-node1:~]# pcs resource
 Clone Set: dummies-clone [dummies]
     Started: [ rh71-node1 rh71-node2 rh71-node3 ]
[root@rh71-node1:~]# pcs resource ungroup dummies d2
[root@rh71-node1:~]# pcs resource
 Clone Set: dummies-clone [dummies]
     Started: [ rh71-node1 rh71-node2 rh71-node3 ]
 d2     (ocf::heartbeat:Dummy): Started rh71-node3

Comment 7 errata-xmlrpc 2015-11-19 09:34:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-2290.html