Description of problem:
If a node is removed from the cluster using the "cman_tool leave remove" command, the quorum is not recalculated to keep the cluster quorate.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Start up a cluster. I used 3 nodes
2. Check expected votes is 3 ('cman_tool status')
3. Remove one node with 'cman_tool leave remove'
'cman_tool status' shows that expected_votes and quorum have not been reduced and the cluster is now inquorate.
Quorum to be reduced to 2 and the cluster remains quorate
There seems to be a missing conditional in cman/commands.c so that quorum is recalculated the 'normal' way AFTER it has been reduced by the removed node.
Checked in for 5.4:
Author: Christine Caulfield <email@example.com>
Date: Tue Jan 20 14:14:26 2009 +0000
cman: send fewer messages for each state transition.
I'm not clear how this is supposed to work.
> Expected results:
> Quorum to be reduced to 2 and the cluster remains quorate
In a three node cluster, quorum should have been 2 to start with. Did you mean expected votes here?
I'm trying this out with a four node cluster where one node has been removed as directed.
[root@z3 ~]# cman_tool status
Expected votes: 4
Total votes: 3
With three nodes left in the cluster, should quorum have dropped to 2?
Cman only adjusts expected votes and quorum when it has to, to maintain quorate state. So going from 4 to 3 nodes doesn't change expected votes or quorum because losing a node in a 4-node cluster wouldn't cause the cluster to lose quorum in the first place.
If you take another node out of that cluster (which without 'leave remove' would leave it inquorate) you should see:
Expected votes: 2
Total votes: 2
While I was testing this I spotted that 'cman_tool leave remove' still doesn't work if there are no services running (eg fenced). So if you are testing using something like
# cman_tool join
# cman_tool leave remove
Then you will still see it fail.
There is a patch in STABLE3 to fix this. I'll commit it for 5.5
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.