Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 597007 Details for
Bug 838047
qdiskd master_wins needs harder config error checking or cman needs to improve expected_votes calculation
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh92 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
proposed patch
838047.patch (text/plain), 3.67 KB, created by
Fabio Massimo Di Nitto
on 2012-07-09 06:39:23 UTC
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Fabio Massimo Di Nitto
Created:
2012-07-09 06:39:23 UTC
Size:
3.67 KB
patch
obsolete
>commit ed1d76c919f8e9d7e0652969b3f8584b150f38bd >Author: Fabio M. Di Nitto <fdinitto@redhat.com> >Date: Mon Jul 9 08:33:37 2012 +0200 > > qdiskd: restrict master_wins to 2 node cluster > > given enough mingling of cluster.conf it was possible to > break quorum rule #1: there is only one quorum in a cluster at > any given time. > > this change restricts master_wins to 2 node cluster only > and provides extra feedback to the user (via logging) on why > the mode is disabled. > > Resolves: rhbz#838047 > > Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com> > >diff --git a/cman/man/qdisk.5 b/cman/man/qdisk.5 >index ca974fa..938ed69 100644 >--- a/cman/man/qdisk.5 >+++ b/cman/man/qdisk.5 >@@ -297,8 +297,9 @@ and qdiskd's timeout (interval*tko) should be less than half of > Totem's token timeout. See section 3.3.1 for more information. > > This option only takes effect if there are no heuristics >-configured. Usage of this option in configurations with more than >-two cluster nodes is undefined and should not be done. >+configured and it is valid only for 2 node cluster. >+This option is automatically disabled if heuristics are >+defined or cluster has more than 2 nodes configured. > > In a two-node cluster with no heuristics and no defined vote > count (see above), this mode is turned by default. If enabled in >diff --git a/cman/qdisk/disk.h b/cman/qdisk/disk.h >index fd80fa6..1792377 100644 >--- a/cman/qdisk/disk.h >+++ b/cman/qdisk/disk.h >@@ -249,6 +249,7 @@ typedef struct { > int qc_master; /* Master?! */ > int qc_config; > int qc_token_timeout; >+ int qc_auto_votes; > disk_node_state_t qc_disk_status; > disk_node_state_t qc_status; > run_flag_t qc_flags; >diff --git a/cman/qdisk/main.c b/cman/qdisk/main.c >index 32677a2..e14d534 100644 >--- a/cman/qdisk/main.c >+++ b/cman/qdisk/main.c >@@ -1444,7 +1444,7 @@ auto_qdisk_votes(int desc) > logt_print(LOG_ERR, "Unable to determine qdiskd votes " > "automatically\n"); > else >- logt_print(LOG_DEBUG, "Setting votes to %d\n", ret); >+ logt_print(LOG_DEBUG, "Setting autocalculated votes to %d\n", ret); > > return (ret); > } >@@ -1606,6 +1606,8 @@ get_dynamic_config_data(qd_ctx *ctx, int ccsfd) > ctx->qc_flags &= ~RF_AUTO_VOTES; > } > >+ ctx->qc_auto_votes = auto_qdisk_votes(ccsfd); >+ > snprintf(query, sizeof(query), "/cluster/quorumd/@votes"); > if (ccs_get(ccsfd, query, &val) == 0) { > ctx->qc_votes = atoi(val); >@@ -1613,7 +1615,7 @@ get_dynamic_config_data(qd_ctx *ctx, int ccsfd) > if (ctx->qc_votes < 0) > ctx->qc_votes = 0; > } else { >- ctx->qc_votes = auto_qdisk_votes(ccsfd); >+ ctx->qc_votes = ctx->qc_auto_votes; > if (ctx->qc_votes < 0) { > if (ctx->qc_config) { > logt_print(LOG_WARNING, "Unable to determine " >@@ -1879,15 +1881,21 @@ get_config_data(qd_ctx *ctx, struct h_data *h, int maxh, int *cfh) > *cfh = configure_heuristics(ccsfd, h, maxh, > ctx->qc_interval * (ctx->qc_tko - 1)); > >- if (*cfh) { >- if (ctx->qc_flags & RF_MASTER_WINS) { >- logt_print(LOG_WARNING, "Master-wins mode disabled\n"); >+ if (ctx->qc_flags & RF_MASTER_WINS) { >+ if (*cfh) { >+ logt_print(LOG_WARNING, "Master-wins mode disabled " >+ "(not compatible with heuristics)\n"); >+ ctx->qc_flags &= ~RF_MASTER_WINS; >+ } >+ if (ctx->qc_auto_votes != 1) { >+ logt_print(LOG_WARNING, "Master-wins mode disabled " >+ "(not compatible with more than 2 nodes)\n"); > ctx->qc_flags &= ~RF_MASTER_WINS; > } > } else { > if (ctx->qc_flags & RF_AUTO_VOTES && >- !(ctx->qc_flags & RF_MASTER_WINS) && >- ctx->qc_votes == 1) { >+ !*cfh && >+ ctx->qc_auto_votes == 1) { > /* Two node cluster, no heuristics, 1 vote for > * quorum disk daemon. Safe to enable master-wins. > * In fact, qdiskd without master-wins in this config
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
lhh
: review+
Actions:
View
|
Diff
Attachments on
bug 838047
: 597007