[Cluster-devel] cluster/cman/daemon commands.c
pcaulfield at sourceware.org
pcaulfield at sourceware.org
Wed Jan 17 11:00:41 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: pcaulfield at sourceware.org 2007-01-17 11:00:41
Modified files:
cman/daemon : commands.c
Log message:
If we get killed by another node then print the reason in English rather
than just a number.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/commands.c.diff?cvsroot=cluster&r1=1.59&r2=1.60
--- cluster/cman/daemon/commands.c 2007/01/16 09:54:43 1.59
+++ cluster/cman/daemon/commands.c 2007/01/17 11:00:40 1.60
@@ -2,7 +2,7 @@
*******************************************************************************
**
** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
-** Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
+** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
**
** This copyrighted material is made available to anyone wishing to use,
** modify, copy, or redistribute it subject to the terms and conditions
@@ -97,6 +97,7 @@
static void process_internal_message(char *data, int len, int nodeid, int byteswap);
static void recalculate_quorum(int allow_decrease);
static void send_kill(int nodeid, uint16_t reason);
+static char *killmsg_reason(int reason);
static void set_port_bit(struct cluster_node *node, uint8_t port)
{
@@ -1817,7 +1818,8 @@
killmsg = (struct cl_killmsg *)data;
P_MEMB("got KILL for node %d\n", killmsg->nodeid);
if (killmsg->nodeid == wanted_nodeid) {
- log_msg(LOG_INFO, "cman killed by node %d for reason %d\n", nodeid, killmsg->reason);
+ log_msg(LOG_INFO, "cman killed by node %d because %s\n", nodeid,
+ killmsg_reason(killmsg->reason));
exit(1);
}
break;
@@ -2040,3 +2042,23 @@
return NULL;
}
+static char *killmsg_reason(int reason)
+{
+ static char msg[1024];
+
+ switch (reason)
+ {
+ case CLUSTER_KILL_REJECTED:
+ return "our membership application was rejected";
+
+ case CLUSTER_KILL_CMANTOOL:
+ return "we were killed by cman_tool or other application";
+
+ case CLUSTER_KILL_REJOIN:
+ return "we node rejoined cluster without a full restart";
+
+ default:
+ sprintf(msg, "we got kill message number %d", reason);
+ return msg;
+ }
+}
More information about the Cluster-devel
mailing list