This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cluster: RHEL5 - cman: make cman_tool leave remove work even when noservices are running.


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=9c41df00092d785b3ad9fcb094bd0461581d3d95
Commit:        9c41df00092d785b3ad9fcb094bd0461581d3d95
Parent:        470a0f93bc2071a1ef26177b854cd7279730c247
Author:        Christine Caulfield <ccaulfie@redhat.com>
AuthorDate:    Tue Jul 28 08:46:36 2009 +0100
Committer:     Christine Caulfield <ccaulfie@redhat.com>
CommitterDate: Tue Jul 28 08:51:46 2009 +0100

cman: make cman_tool leave remove work even when no services are running.

cman_tool leave takes a shortcut internally if no services are listening
for shutdown events. Unfortunately, a bug in this shortcut means that the
leave flags gets lost, so quorum is not adjusted downwards.

This patch fixes that shortcut. I should make it clear that 'leave remove'
works fine if any cluster services are running.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
---
 cman/daemon/commands.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index 710449e..d400b25 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -947,6 +947,13 @@ static int do_cmd_try_shutdown(struct connection *con, char *cmdbuf)
 	/* If no-one is listening for events then we can just go down now */
 	if (shutdown_expected == 0) {
 		send_leave(CLUSTER_LEAVEFLAG_DOWN);
+		int leaveflags = CLUSTER_LEAVEFLAG_DOWN;
+
+		quit_threads = 1;
+		if (shutdown_flags & SHUTDOWN_REMOVE)
+			leaveflags |= CLUSTER_LEAVEFLAG_REMOVED;
+
+		send_leave(leaveflags);
 		return 0;
 	}
 	else {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]