Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 614122

Summary: [RFE] port qdisk as corosync votequorum external quorum device
Product: Red Hat Enterprise Linux 7 Reporter: Steven Dake <sdake>
Component: corosyncAssignee: Jan Friesse <jfriesse>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: low Docs Contact: Steven J. Levine <slevine>
Priority: low    
Version: 7.0CC: ccaulfie, cluster-maint, djuran, jfriesse, jkortus, keypusher, mnavrati, mtessun, rbednar, slevine
Target Milestone: rcKeywords: FutureFeature, Reopened, TechPreview
Target Release: 7.1   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: corosync-2.4.0-1.el7 Doc Type: Technology Preview
Doc Text:
Feature: Add daemon running on each node of a cluster to provide a configured number of votes to the quorum subsystem based on a third-party arbitrator’s decision. Its primary use is to allow a cluster to sustain more node failures than standard quorum rules allow. It is recommended for clusters with an even number of nodes and highly recommended for 2 node clusters. This means also to add daemon running outside of the cluster (3rd arbiter) with the purpose of providing a vote to the corosync-qdevice model net. It’s designed to support multiple clusters and be almost configuration and state free. New clusters are handled dynamically and no configuration file exists. It’s also able to run as non-root user - which is recommended. Connection between the corosync-qdevice model net client can be optionally configured with TLS client certificate checking. The communication protocol between server and client is designed to be very simple and allow backwards compatibility. Reason: Scratch cluster Result: corosync-qdevice/corosync-qnetd packages added.
Story Points: ---
Clone Of:
: 1129724 1280348 (view as bug list) Environment:
Last Closed: 2016-11-04 06:48:18 UTC Type: ---
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: 1367813    
Bug Blocks: 1113520, 1129724, 1158805, 1280348, 1347514, 1347530, 1366039    
Attachments:
Description Flags
votequorum: Return current ring id in callback
none
votequorum: Add ring id to poll call
none
ipc: Process votequorum messages during sync
none
votequorum: Block sync until qdevice poll
none
testvotequorum2: Opt for polling with old ringid
none
votequorum: Make qdev timeout in sync configurable
none
results none

Description Steven Dake 2010-07-13 17:42:42 UTC
See summary.

Lon can describe benefits.

Comment 2 Steven Dake 2010-07-13 19:07:00 UTC
Tracking as RHEL6 bug until RHEL7 bugzilla is populated with components.  This is NOT targeted for RHEL6.

Comment 3 Lon Hohberger 2010-09-30 20:09:28 UTC
*** Bug 591234 has been marked as a duplicate of this bug. ***

Comment 4 Fabio Massimo Di Nitto 2012-02-11 05:43:43 UTC
Moving to corosync upstream.

Comment 11 Jan Friesse 2014-08-25 14:39:20 UTC
Created attachment 930521 [details]
votequorum: Return current ring id in callback

votequorum: Return current ring id in callback

Returning ring id will be used in poll function.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 12 Jan Friesse 2014-08-25 14:39:26 UTC
Created attachment 930522 [details]
votequorum: Add ring id to poll call

votequorum: Add ring id to poll call

If votequorum service receives incorrect (not current) ringid, call is
ignored and CS_ERR_MESSAGE_ERROR is returned.

This and previous commits makes incompatible changes in votequorum
API/ABI, so library version is increased.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 13 Jan Friesse 2014-08-25 14:39:34 UTC
Created attachment 930523 [details]
ipc: Process votequorum messages during sync

ipc: Process votequorum messages during sync

This is needed for qdevice to be able to process messages during
synchronization phase.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 14 Jan Friesse 2014-08-25 14:39:40 UTC
Created attachment 930524 [details]
votequorum: Block sync until qdevice poll

votequorum: Block sync until qdevice poll

If qdevice is registered a alive, corosync waits in sync phase until
timeout expires or qdevice votes with correct nodeid parameter.

This gives qdevice time to decide to vote or not undisturbed and without
time hazard.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 15 Jan Friesse 2014-08-25 14:39:45 UTC
Created attachment 930525 [details]
testvotequorum2: Opt for polling with old ringid

testvotequorum2: Opt for polling with old ringid

Option -F is added to force sending old ringid for given number of
times. Option is useful for testing failure scenario during corosync
synchronization phase.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 16 Jan Friesse 2014-08-25 14:39:50 UTC
Created attachment 930526 [details]
votequorum: Make qdev timeout in sync configurable

votequorum: Make qdev timeout in sync configurable

Configuration option quorum.device.sync_timeout is available for setting
qdevice poll timeout for synchronization phase. Default value is 30
sec.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 25 Roman Bednář 2016-09-27 13:36:51 UTC
Created attachment 1205194 [details]
results

Marking verified using latest rpms.

corosync-2.4.0-4.el7.x86_64
corosync-qdevice-2.4.0-4.el7.x86_64
corosynclib-2.4.0-4.el7.x86_64
corosync-qnetd-2.4.0-4.el7.x86_64
pcs-0.9.152-10.el7.x86_64

See attachment for details.

Comment 27 errata-xmlrpc 2016-11-04 06:48:18 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-2463.html