Bug 1203802

Summary: Cluster setup overwrites cluster.conf on RHEL6 without warning
Product: Red Hat Enterprise Linux 6 Reporter: Radek Steiger <rsteiger>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: high    
Version: 6.7CC: cluster-maint, tojeline
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.145-1.el6 Doc Type: Bug Fix
Doc Text:
Cause: User creates a cluster using nodes which are part of another cluster. Consequence: Existing cluster configuration on the nodes gets overwritten by the newly created cluster configuration. Fix: Check whether nodes are part of a cluster, exit with an error message if they are. Result: User does not accidentally destroy an existing cluster by running the 'pcs cluster setup' command.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-10 19:27:41 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-03-19 17:14:24 UTC
> Description of problem:

On RHEL6 pcs doesn't warn that a cluster.conf already exists when running setup.

[root@host-091 ~]# grep nodeid /etc/cluster/cluster.conf
    <clusternode name="host-091" nodeid="1">
    <clusternode name="host-092" nodeid="2">
    <clusternode name="host-093" nodeid="3">
    <clusternode name="host-094" nodeid="4">
    <clusternode name="host-095" nodeid="5">
    <clusternode name="host-096" nodeid="6">

[root@host-091 ~]# pcs cluster setup --name cluster67 host-09{1..4}
host-091: Updated cluster.conf...
host-092: Updated cluster.conf...
host-093: Updated cluster.conf...
host-094: Updated cluster.conf...

[root@host-091 ~]# grep nodeid /etc/cluster/cluster.conf
    <clusternode name="host-091" nodeid="1">
    <clusternode name="host-092" nodeid="2">
    <clusternode name="host-093" nodeid="3">
    <clusternode name="host-094" nodeid="4">



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

pcs-0.9.139-5.el6


> How reproducible:

Always 


> Steps to Reproduce:

1. Setup a cluster using pcs
2. Setup a cluster using pcs again, use different settings for easier verification
3. 


> Actual results:

The old cluster.conf gets rewritten by new version without warning.


> Expected results:

Similar error message as on RHEL7, with the possibility of forcing:
"Error: /etc/cluster/cluster.conf already exists, use --force to overwrite"

Comment 1 Tomas Jelinek 2015-09-29 14:55:22 UTC
Created attachment 1078403 [details]
proposed fix

Before fix:
[root@rh67-node1:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node2:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node3:~]# ls /etc/cluster/cluster.conf
ls: cannot access /etc/cluster/cluster.conf: No such file or directory
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3
Warning: Unable to set pcsd configs on rh67-node1
Warning: Unable to set pcsd configs on rh67-node2
rh67-node1: Updated cluster.conf...
rh67-node2: Updated cluster.conf...
rh67-node3: Updated cluster.conf...
Synchronizing pcsd certificates on nodes rh67-node1, rh67-node2, rh67-node3...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success

Restaring pcsd on the nodes in order to reload the certificates...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success

> No warning saying nodes are already part of a cluster is displayed, existing cluster config files get overwritten.



After fix:
[root@rh67-node1:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node2:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node3:~]# ls /etc/cluster/cluster.conf
ls: cannot access /etc/cluster/cluster.conf: No such file or directory
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3
Error: rh67-node1: node is already in a cluster
Error: rh67-node2: node is already in a cluster
Error: nodes availability check failed, use --force to override. WARNING: This will destroy existing cluster on the nodes.
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3 --force
Destroying cluster on nodes: rh67-node1, rh67-node2, rh67-node3...
rh67-node2: Stopping Cluster (pacemaker)...
rh67-node3: Stopping Cluster (pacemaker)...
rh67-node1: Stopping Cluster (pacemaker)...
rh67-node3: Successfully destroyed cluster
rh67-node1: Successfully destroyed cluster
rh67-node2: Successfully destroyed cluster

Sending cluster config files to the nodes...
rh67-node1: Updated cluster.conf...
rh67-node2: Updated cluster.conf...
rh67-node3: Updated cluster.conf...

Synchronizing pcsd certificates on nodes rh67-node1, rh67-node2, rh67-node3...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success

Restaring pcsd on the nodes in order to reload the certificates...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success

> Pcs prints a warning saying nodes are already part of a cluster and does not proceed. User is able to force the operation. In that case the existing cluster is properly destroyed on the nodes prior to set up a new one.

Comment 2 Tomas Jelinek 2015-11-04 11:41:37 UTC
Before Fix:
[root@rh67-node1 ~]# rpm -q pcs
pcs-0.9.139-9.el6_7.1.x86_64
[root@rh67-node2 ~]# rpm -q pcs
pcs-0.9.139-9.el6_7.1.x86_64
[root@rh67-node3 ~]# rpm -q pcs
pcs-0.9.139-9.el6_7.1.x86_64
[root@rh67-node1:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node2:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node3:~]# ls /etc/cluster/cluster.conf
ls: cannot access /etc/cluster/cluster.conf: No such file or directory
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3
rh67-node1: Updated cluster.conf...
rh67-node2: Updated cluster.conf...
rh67-node3: Updated cluster.conf...

> No warning saying nodes are already part of a cluster is displayed, existing cluster config files get overwritten.



After Fix:
[root@rh67-node1:~]# rpm -q pcs
pcs-0.9.145-1.el6.x86_64
[root@rh67-node2:~]# rpm -q pcs
pcs-0.9.145-1.el6.x86_64
[root@rh67-node3:~]# rpm -q pcs
pcs-0.9.145-1.el6.x86_64
[root@rh67-node1:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node2:~]# ls /etc/cluster/cluster.conf
/etc/cluster/cluster.conf
[root@rh67-node3:~]# ls /etc/cluster/cluster.conf
ls: cannot access /etc/cluster/cluster.conf: No such file or directory
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3
Error: rh67-node1: node is already in a cluster
Error: rh67-node2: node is already in a cluster
Error: nodes availability check failed, use --force to override. WARNING: This will destroy existing cluster on the nodes.
[root@rh67-node3:~]# echo $?
1
[root@rh67-node3:~]# pcs cluster setup --name cluster67 rh67-node1 rh67-node2 rh67-node3 --force
Destroying cluster on nodes: rh67-node1, rh67-node2, rh67-node3...
rh67-node3: Stopping Cluster (pacemaker)...
rh67-node1: Stopping Cluster (pacemaker)...
rh67-node2: Stopping Cluster (pacemaker)...
rh67-node3: Successfully destroyed cluster
rh67-node1: Successfully destroyed cluster
rh67-node2: Successfully destroyed cluster

Sending cluster config files to the nodes...
rh67-node1: Updated cluster.conf...
rh67-node2: Updated cluster.conf...
rh67-node3: Updated cluster.conf...

Synchronizing pcsd certificates on nodes rh67-node1, rh67-node2, rh67-node3...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success

Restaring pcsd on the nodes in order to reload the certificates...
rh67-node2: Success
rh67-node3: Success
rh67-node1: Success
[root@rh67-node3:~]# echo $?
0
> Pcs prints a warning saying nodes are already part of a cluster and does not proceed. User is able to force the operation. In that case the existing cluster is properly destroyed on the nodes before a new cluster is set up.

Comment 6 errata-xmlrpc 2016-05-10 19:27:41 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/RHBA-2016-0739.html