Bug 1780134
Summary: | Adding quorum device requires restart to clear WaitForAll flag | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Josef Zimek <pzimek> | ||||||
Component: | corosync | Assignee: | Jan Friesse <jfriesse> | ||||||
Status: | CLOSED ERRATA | QA Contact: | cluster-qe <cluster-qe> | ||||||
Severity: | unspecified | Docs Contact: | |||||||
Priority: | unspecified | ||||||||
Version: | 7.8 | CC: | ccaulfie, cluster-maint, ondrej-redhat-developer, phagara | ||||||
Target Milestone: | rc | ||||||||
Target Release: | --- | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | corosync-2.4.5-5.el7 | Doc Type: | If docs needed, set a value | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | |||||||||
: | 1780137 (view as bug list) | Environment: | |||||||
Last Closed: | 2020-09-29 19:55:11 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: | |||||||||
Bug Depends On: | 1780137 | ||||||||
Bug Blocks: | |||||||||
Attachments: |
|
Description
Josef Zimek
2019-12-05 13:38:17 UTC
I can agree this needs to be fixed. Ideally Corosync should behave same way after adding qdevice as it is after restart. Created attachment 1654295 [details]
votequorum: Ignore the icmap_get_* return value
votequorum: Ignore the icmap_get_* return value
Express intention to ignore icmap_get_* return
value and rely on default behavior of not changing the output
parameter on error.
Signed-off-by: Jan Friesse <jfriesse>
(cherry picked from commit cddd62f972bca276c934e58f08da84071cec1ddb)
Created attachment 1654296 [details]
votequorum: Reflect runtime change of 2Node to WFA
votequorum: Reflect runtime change of 2Node to WFA
When 2Node mode is set, WFA is also set unless WFA is configured
explicitly. This behavior was not reflected on runtime change, so
restarted corosync behavior was different (WFA not set). Also when
cluster is reduced from 3 nodes to 2 nodes during runtime, WFA was not
set, what may result in two quorate partitions.
Solution is to set WFA depending on 2Node when WFA
is not explicitly configured.
Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>
(cherry picked from commit 8ce65bf951bc1e5b2d64b60ea027fbdc551d4fc8)
For QE: Bug reproducer is described in the comment 1. I've tested with just setting two_node: 1 in corosync.conf. corosync.conf: ... quorum { provider: corosync_votequorum two_node: 1 ... # corosync-quorumtool ... Flags: 2Node WaitForAll ... Changing corosync.conf is it doesn't contain two_node: ... quorum { provider: corosync_votequorum ... # corosync-cfgtool -R # corosync-quorumtool ... Flags: ... Add two_node back: ... quorum { provider: corosync_votequorum two_node: 1 ... # corosync-quorumtool ... Flags: 2Node WaitForAll ... before (2.4.5-4.el7) ==================== [root@virt-173 ~]# rpm -q corosync corosync-2.4.5-4.el7.x86_64 [root@virt-173 ~]# cat /etc/corosync/corosync.conf <snip> quorum { provider: corosync_votequorum two_node: 1 } <snip> [root@virt-173 ~]# corosync-quorumtool Quorum information ------------------ Date: Tue May 26 14:23:57 2020 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/43 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 1 Flags: 2Node Quorate WaitForAll Membership information ---------------------- Nodeid Votes Name 1 1 virt-173 (local) 2 1 virt-175 result: WaitForAll flag not removed on corosync config reload after (2.4.5-5.el7) =================== [root@virt-053 ~]# rpm -q corosync corosync-2.4.5-5.el7.x86_64 [root@virt-053 ~]# corosync-quorumtool Quorum information ------------------ Date: Tue May 26 14:25:38 2020 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/43 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 1 Flags: 2Node Quorate WaitForAll Membership information ---------------------- Nodeid Votes Name 1 1 virt-053 (local) 2 1 virt-060 [root@virt-053 ~]# sed -i '/two_node/d' /etc/corosync/corosync.conf [root@virt-053 ~]# corosync-cfgtool -R Reloading corosync.conf... Done [root@virt-053 ~]# corosync-quorumtool Quorum information ------------------ Date: Tue May 26 14:25:59 2020 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/43 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 1 1 virt-053 (local) 2 1 virt-060 result: WaitForAll flag correctly removed on config reload whoops, forgot to paste everything in the "before" section. here's the full reproducer (the "after" section in comment#11 is correct): before (2.4.5-4.el7) ==================== [root@virt-173 ~]# rpm -q corosync corosync-2.4.5-4.el7.x86_64 [root@virt-173 ~]# cat /etc/corosync/corosync.conf <snip> quorum { provider: corosync_votequorum two_node: 1 } <snip> [root@virt-173 ~]# corosync-quorumtool Quorum information ------------------ Date: Tue May 26 14:23:57 2020 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/43 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 1 Flags: 2Node Quorate WaitForAll Membership information ---------------------- Nodeid Votes Name 1 1 virt-173 (local) 2 1 virt-175 [root@virt-173 ~]# sed -i '/two_node/d' /etc/corosync/corosync.conf [root@virt-173 ~]# corosync-cfgtool -R Reloading corosync.conf... Done [root@virt-173 ~]# corosync-quorumtool Quorum information ------------------ Date: Tue May 26 14:24:49 2020 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/43 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate WaitForAll Membership information ---------------------- Nodeid Votes Name 1 1 virt-173 (local) 2 1 virt-175 result: WaitForAll flag not removed on corosync config reload 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 (corosync bug fix and enhancement update), 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://access.redhat.com/errata/RHBA-2020:3924 |