From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15922 invoked by alias); 17 Feb 2009 17:17:43 -0000 Received: (qmail 15916 invoked by alias); 17 Feb 2009 17:17:42 -0000 X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_50,SPF_HELO_PASS X-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_50,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion.fedora.phx.redhat.com Subject: cluster: STABLE3 - cman: Don't eject nodes that were quorate on their own if we have no state To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/STABLE3 X-Git-Reftype: branch X-Git-Oldrev: 3ecd9f653d316941c748f3c65e8ab88487db08e5 X-Git-Newrev: 7539016097186bca54d0929bc5f1ae0791bd8afe From: Christine Caulfield Message-Id: <20090217171713.81AB6120284@lists.fedorahosted.org> Date: Tue, 17 Feb 2009 17:17:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q1/txt/msg00465.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=7539016097186bca54d0929bc5f1ae0791bd8afe Commit: 7539016097186bca54d0929bc5f1ae0791bd8afe Parent: 3ecd9f653d316941c748f3c65e8ab88487db08e5 Author: Christine Caulfield AuthorDate: Tue Feb 17 17:14:00 2009 +0000 Committer: Christine Caulfield CommitterDate: Tue Feb 17 17:14:00 2009 +0000 cman: Don't eject nodes that were quorate on their own if we have no state If a node boots up and becomes quorate on its own (eg because of expected_votes=1 or qdisk) and another node then joined in the cluster, the new node would kill the first node because it detects that it had state and was not previously part of the cluster. Now it checks to see if the new node also has state. If it does not then the cluster join is allowed because we are joining a stateful node to a stateless node and that should be allowed. bz#485026 Signed-off-by: Christine Caulfield --- cman/daemon/commands.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c index 490607d..5da3af3 100644 --- a/cman/daemon/commands.c +++ b/cman/daemon/commands.c @@ -1881,7 +1881,7 @@ static void do_process_transition(int nodeid, char *data) /* Newer nodes 6.1.0 onwards, set the DIRTY flag if they have state. If the new node has been down and has state then we mark it disallowed because we cannot merge stateful nodes */ if ( (msg->flags & NODE_FLAGS_DIRTY && (node->flags & NODE_FLAGS_BEENDOWN)) || - (msg->flags & NODE_FLAGS_DIRTY && msg->first_trans && !node->us)) { + (msg->flags & NODE_FLAGS_DIRTY && msg->first_trans && !node->us && (us->flags & NODE_FLAGS_DIRTY))) { /* Don't duplicate messages */ if (node->state != NODESTATE_AISONLY) { if (cluster_is_quorate) {