[Cluster-devel] [PATCH] cman: wait for quorum

Fabio M. Di Nitto fdinitto at redhat.com
Thu Aug 6 16:56:52 UTC 2009


Untested but looks good to me.

Fabio

On Thu, 2009-08-06 at 11:17 -0500, David Teigland wrote:
> Wait for quorum when starting.
> https://www.redhat.com/archives/cluster-devel/2009-August/msg00006.html
> 
> Signed-off-by: David Teigland <teigland at redhat.com>
> ---
>  cman/init.d/cman.in |   18 +++++++++++++++---
>  1 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/cman/init.d/cman.in b/cman/init.d/cman.in
> index 6481d6b..ff140fc 100644
> --- a/cman/init.d/cman.in
> +++ b/cman/init.d/cman.in
> @@ -68,13 +68,13 @@ fi
>  #     a cluster is not joined.  If CMAN_CLUSTER_TIMEOUT is zero, then
>  #     wait indefinately for a cluster join.  If CMAN_CLUSTER_TIMEOUT is
>  #     negative, do not check to see that the cluster has been joined
> -[ -z "$CMAN_CLUSTER_TIMEOUT" ] && CMAN_CLUSTER_TIMEOUT=120
> +[ -z "$CMAN_CLUSTER_TIMEOUT" ] && CMAN_CLUSTER_TIMEOUT=60
>  
>  # CMAN_QUORUM_TIMEOUT -- amount of time to wait for a quorate cluster on
>  #     startup quorum is needed by many other applications, so we may as
> -#     well wait here.  If CMAN_QUORUM_TIMEOUT is less than 1, quorum will
> +#     well wait here.  If CMAN_QUORUM_TIMEOUT is zero, quorum will
>  #     be ignored.
> -[ -z "$CMAN_QUORUM_TIMEOUT" ] && CMAN_QUORUM_TIMEOUT=0
> +[ -z "$CMAN_QUORUM_TIMEOUT" ] && CMAN_QUORUM_TIMEOUT=20
>  
>  # CMAN_SHUTDOWN_TIMEOUT -- amount of time to wait for cman to become a
>  #     cluster member before calling cman_tool leave during shutdown.
> @@ -490,6 +490,14 @@ start_cman()
>  	fi
>  }
>  
> +wait_for_quorum()
> +{
> +	if [ $CMAN_QUORUM_TIMEOUT -gt 0 ]; then
> +		errmsg=$( cman_tool -t $CMAN_QUORUM_TIMEOUT \
> +			 -q wait 2>&1 ) || return 1
> +	fi
> +}
> +
>  stop_cman()
>  {
>  	if cman_running; then
> @@ -678,6 +686,10 @@ start()
>  		qdiskd_enabled \
>  		"Starting qdiskd"
>  
> +	runwrap wait_for_quorum \
> +		none \
> +		"Waiting for quorum"
> +
>  	runwrap start_groupd \
>  		groupd_enabled \
>  		"Starting groupd"




More information about the Cluster-devel mailing list