All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabio M. Di Nitto <fdinitto@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH] cman: Don't increment on LEAVING->MEMBER transition
Date: Tue, 22 Mar 2011 09:33:14 +0100	[thread overview]
Message-ID: <4D885ECA.6040509@redhat.com> (raw)
In-Reply-To: <1300755989-9344-1-git-send-email-lhh@redhat.com>

The patch looks sane to me and I am fairly sure it needs to be applied
to STABLE31/RHEL6 too.

I?d like also an ACK from Chrissie here.

Fabio

On 3/22/2011 2:06 AM, Lon Hohberger wrote:
> If a node left the cluster prior using 'cman_tool leave', its
> internal state is set to NODESTATE_LEAVING.
> 
> Ordinarily, during the transition from NODESTATE_LEAVING to
> NODESTATE_DEAD, the member count is decremented.  However, it
> is possible to rejoin the cluster membership from the
> NODESTATE_LEAVING state.
> 
> If this occurs, the cluster member count is incremented, but
> since the node never transitioned from LEAVING->DEAD, it was
> not previously decremented, causing an ever-increasing node
> count in 'cman_tool status'.
> 
> This patch resolves the issue by not incrementing the member
> count during a LEAVING->MEMBER transition.
> 
> Resolves: rhbz#649533
> 
> Signed-off-by: Lon Hohberger <lhh@redhat.com>
> ---
>  cman/daemon/commands.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
> index 6ffe9e5..6c91d7a 100644
> --- a/cman/daemon/commands.c
> +++ b/cman/daemon/commands.c
> @@ -1994,9 +1994,12 @@ void add_ais_node(int nodeid, uint64_t incarnation, int total_members)
>  
>  	if (node->state == NODESTATE_DEAD || node->state == NODESTATE_LEAVING) {
>  		gettimeofday(&node->join_time, NULL);
> +		/* If a node rejoins before it completes a leave,
> +		 * we should not increment cluster_members */
> +		if (node->state != NODESTATE_LEAVING)
> +			cluster_members++;
>  		node->incarnation = incarnation;
>  		node->state = NODESTATE_MEMBER;
> -		cluster_members++;
>  		recalculate_quorum(0, 0);
>  	}
>  }



  reply	other threads:[~2011-03-22  8:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-22  1:06 [Cluster-devel] [PATCH] cman: Don't increment on LEAVING->MEMBER transition Lon Hohberger
2011-03-22  8:33 ` Fabio M. Di Nitto [this message]
2011-03-22 10:28   ` Christine Caulfield
  -- strict thread matches above, loose matches on Subject: below --
2010-12-07 15:13 Lon Hohberger

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=4D885ECA.6040509@redhat.com \
    --to=fdinitto@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.