From: David Teigland Date: Thu, 6 Aug 2009 11:17:18 -0500 Subject: [Cluster-devel] [PATCH] cman: wait for quorum Message-ID: <20090806161718.GE15669@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Wait for quorum when starting. https://www.redhat.com/archives/cluster-devel/2009-August/msg00006.html Signed-off-by: David Teigland --- 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" -- 1.5.5.6