From: lhh@sourceware.org <lhh@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] Cluster Project branch, STABLE, updated. rgmanager_1_9_66-12-g5ee43ba
Date: 11 Mar 2008 19:16:49 -0000 [thread overview]
Message-ID: <20080311191649.2526.qmail@sourceware.org> (raw)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".
http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=5ee43bab4b9c3048e58eb5f1de61d57b1a28e045
The branch, STABLE has been updated
via 5ee43bab4b9c3048e58eb5f1de61d57b1a28e045 (commit)
via 5459b747db65955eb0ddced1524e909e0d19f52f (commit)
from 67f3b6dd2c711cb1077b88daea7bb6dd27fcf0ec (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5ee43bab4b9c3048e58eb5f1de61d57b1a28e045
Author: Lon Hohberger <lhh@redhat.com>
Date: Fri Jan 25 18:13:24 2008 +0000
Fix qdiskd master abdication logic (#430264)
commit 5459b747db65955eb0ddced1524e909e0d19f52f
Author: Lon Hohberger <lhh@redhat.com>
Date: Tue Mar 11 10:43:37 2008 -0400
[CMAN] Fix "Node X is undead" loop bug
This was caused by an improper assignment to ps_incarnation
after a node decides to evict another node. The fix
is to simply make the internal (memory) assignments before
calling qd_write_status()
-----------------------------------------------------------------------
Summary of changes:
cman/qdisk/main.c | 37 +++++++++++++++++++------------------
1 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/cman/qdisk/main.c b/cman/qdisk/main.c
index 1956c46..cb20590 100644
--- a/cman/qdisk/main.c
+++ b/cman/qdisk/main.c
@@ -252,23 +252,6 @@ check_transitions(qd_ctx *ctx, node_info_t *ni, int max, memb_mask_t mask)
state_run(ni[x].ni_status.ps_state)) {
/*
- Write eviction notice if we're the master.
- */
- if (ctx->qc_status == S_MASTER) {
- clulog(LOG_NOTICE,
- "Writing eviction notice for node %d\n",
- ni[x].ni_status.ps_nodeid);
- qd_write_status(ctx, ni[x].ni_status.ps_nodeid,
- S_EVICT, NULL, NULL, NULL);
- if (ctx->qc_flags & RF_ALLOW_KILL) {
- clulog(LOG_DEBUG, "Telling CMAN to "
- "kill the node\n");
- cman_kill_node(ctx->qc_ch,
- ni[x].ni_status.ps_nodeid);
- }
- }
-
- /*
Mark our internal views as dead if nodes miss too
many heartbeats... This will cause a master
transition if no live master exists.
@@ -285,6 +268,23 @@ check_transitions(qd_ctx *ctx, node_info_t *ni, int max, memb_mask_t mask)
ni[x].ni_evil_incarnation =
ni[x].ni_status.ps_incarnation;
+ /*
+ Write eviction notice if we're the master.
+ */
+ if (ctx->qc_status == S_MASTER) {
+ clulog(LOG_NOTICE,
+ "Writing eviction notice for node %d\n",
+ ni[x].ni_status.ps_nodeid);
+ qd_write_status(ctx, ni[x].ni_status.ps_nodeid,
+ S_EVICT, NULL, NULL, NULL);
+ if (ctx->qc_flags & RF_ALLOW_KILL) {
+ clulog(LOG_DEBUG, "Telling CMAN to "
+ "kill the node\n");
+ cman_kill_node(ctx->qc_ch,
+ ni[x].ni_status.ps_nodeid);
+ }
+ }
+
/* Clear our master mask for the node after eviction */
if (mask)
clear_bit(mask, (ni[x].ni_status.ps_nodeid-1),
@@ -932,7 +932,8 @@ quorum_loop(qd_ctx *ctx, node_info_t *ni, int max)
ctx->qc_master = master_exists(ctx, ni, max, &low_id, &count);
/* Resolve master conflict, if one exists */
- if (count > 1 && ctx->qc_status == S_MASTER) {
+ if (count >= 1 && ctx->qc_status == S_MASTER &&
+ ctx->qc_master != ctx->qc_my_id) {
clulog(LOG_WARNING, "Master conflict: abdicating\n");
/* Handle just like a recent upgrade */
hooks/post-receive
--
Cluster Project
reply other threads:[~2008-03-11 19:16 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080311191649.2526.qmail@sourceware.org \
--to=lhh@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).