cluster: STABLE32 - cpglockd: use standard logging infrastructure

Ryan McCabe rmccabe at fedoraproject.org
Tue May 1 13:43:41 UTC 2012


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=abe0bc61232f32b3b6757ff2b13e6e33c9894285
Commit:        abe0bc61232f32b3b6757ff2b13e6e33c9894285
Parent:        d6212e80ad256dd8695feca7b50ee21dc1f681fa
Author:        Fabio M. Di Nitto <fdinitto at redhat.com>
AuthorDate:    Tue Apr 24 15:21:34 2012 +0200
Committer:     Fabio M. Di Nitto <fdinitto at redhat.com>
CommitterDate: Tue Apr 24 17:04:10 2012 +0200

cpglockd: use standard logging infrastructure

Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
---
 rgmanager/include/cpglock-internal.h |    7 --
 rgmanager/src/clulib/libcpglock.c    |    4 -
 rgmanager/src/daemons/Makefile       |    2 +-
 rgmanager/src/daemons/cpglockd.c     |  171 ++++++++++++++++++++--------------
 4 files changed, 104 insertions(+), 80 deletions(-)

diff --git a/rgmanager/include/cpglock-internal.h b/rgmanager/include/cpglock-internal.h
index 904df37..e05b90a 100644
--- a/rgmanager/include/cpglock-internal.h
+++ b/rgmanager/include/cpglock-internal.h
@@ -1,12 +1,6 @@
 #ifndef _CPGLOCK_INT_H
 #define _CPGLOCK_INT_H
 
-#ifdef CPGLOCK_DEBUG
-#	define cpgl_debug(format, args...) do { printf(format, ##args); } while (0)
-#else
-#	define cpgl_debug(format, args...) do { } while (0)
-#endif
-
 #ifndef CPG_LOCKD_SOCK
 #define CPG_LOCKD_SOCK "/var/run/cpglockd.sk"
 #endif
@@ -25,7 +19,6 @@ typedef enum {
 	MSG_HALT   = 999
 } cpg_lock_req_t;
 
-/* Mixed architecture not supported yet */
 struct cpg_lock_msg {
 	int32_t request;
 	uint32_t owner_nodeid;
diff --git a/rgmanager/src/clulib/libcpglock.c b/rgmanager/src/clulib/libcpglock.c
index d554281..f99edd4 100644
--- a/rgmanager/src/clulib/libcpglock.c
+++ b/rgmanager/src/clulib/libcpglock.c
@@ -145,8 +145,6 @@ cpg_lock(void *handle, const char *resource, lock_flag_t flags, struct cpg_lock
 		}
 
 		if (strcmp(r.resource, l.resource)) {
-			cpgl_debug("NOTE: msg for wrong lock want: %s got: %s\n",
-				l.resource, r.resource);
 			add_pending(&h->pending, &r);
 			pthread_mutex_unlock(&h->mutex);
 			usleep(random() & 16383);
@@ -154,8 +152,6 @@ cpg_lock(void *handle, const char *resource, lock_flag_t flags, struct cpg_lock
 			continue;
 		}
 		if (r.owner_tid != l.owner_tid) {
-			cpgl_debug("NOTE: msg for wrong seq want: %d got: %d\n",
-				l.owner_tid, r.owner_tid );
 			add_pending(&h->pending, &r);
 			pthread_mutex_unlock(&h->mutex);
 			usleep(random() & 16383);
diff --git a/rgmanager/src/daemons/Makefile b/rgmanager/src/daemons/Makefile
index d125eaa..a178523 100644
--- a/rgmanager/src/daemons/Makefile
+++ b/rgmanager/src/daemons/Makefile
@@ -107,7 +107,7 @@ ${TARGET3}: ${TARGET1}
 
 ${TARGET4}: ${OBJS4} ${LDDEPS}
 	$(CC) -o $@ $^ $(CPG_LDFLAGS) $(CMAN_LDFLAGS) $(CCS_LDFLAGS) \
-			$(FENCED_LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS)
+			$(FENCED_LDFLAGS) $(LOGSYS_LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS)
 
 ${TARGET5}: ${OBJS5} ${LDDEPS}
 	$(CC) -o $@ $^ $(CPG_LDFLAGS)
diff --git a/rgmanager/src/daemons/cpglockd.c b/rgmanager/src/daemons/cpglockd.c
index 9f9f635..47cbcdc 100644
--- a/rgmanager/src/daemons/cpglockd.c
+++ b/rgmanager/src/daemons/cpglockd.c
@@ -18,6 +18,7 @@
 #include <ccs.h>
 #include <libcman.h>
 #include <libfenced.h>
+#include <liblogthread.h>
 
 #include "daemon_init.h"
 #include "sock.h"
@@ -75,6 +76,7 @@ static int joined = 0;
 static int cluster_quorate = 0;
 static int cman_shutdown_requested = 0;
 static int shutdown_pending = 0;
+static int nofork = 0;
 
 static cman_node_t cman_nodes[CPG_MEMBERS_MAX];
 static int cman_node_count;
@@ -82,6 +84,8 @@ static int cman_node_count;
 static cman_node_t old_cman_nodes[CPG_MEMBERS_MAX];
 static int old_cman_node_count;
 
+static void init_logging(int reconf);
+
 static void
 flag_shutdown(int __attribute__ ((unused)) sig)
 {
@@ -100,7 +104,7 @@ cman_nodes_lost(cman_node_t *old_nodes,
 	size_t lost_nodes_len = 0;
 
 	if (lost_nodes_size < old_node_len) {
-		cpgl_debug("Lost nodes array smaller than old nodes array");
+		logt_print(LOG_DEBUG, "Lost nodes array smaller than old nodes array");
 		return -1;
 	}
 
@@ -140,7 +144,7 @@ node_has_fencing(int nodeid)
 
 	ccs_desc = ccs_connect();
 	if (ccs_desc < 0) {
-		cpgl_debug("Unable to connect to ccsd\n");
+		logt_print(LOG_DEBUG, "Unable to connect to ccsd\n");
 		/* Assume node has fencing */
 		return 1;
 	}
@@ -164,7 +168,7 @@ fence_domain_joined(void) {
 
 	ret = fenced_node_info(FENCED_NODEID_US, &fn);
 	if (ret < 0) {
-		cpgl_debug("Unable to determine fence domain membership\n");
+		logt_print(LOG_DEBUG, "Unable to determine fence domain membership\n");
 		return 0;
 	}
 
@@ -192,14 +196,14 @@ cman_callback(cman_handle_t ch, void *privdata, int reason, int arg)
 
 		ret = cman_get_nodes(ch, nodes_elem, &cman_node_count, cman_nodes);
 		if (ret < 0) {
-			cpgl_debug("Unable to get cman nodes list\n");
+			logt_print(LOG_DEBUG, "Unable to get cman nodes list\n");
 			return;
 		}
 
 		nl = cman_nodes_lost(old_cman_nodes, old_cman_node_count,
 				cman_nodes, cman_node_count, lost_nodes, nodes_elem);
 		if (nl < 0) {
-			cpgl_debug("Unable to get list of lost nodes");
+			logt_print(LOG_DEBUG, "Unable to get list of lost nodes");
 			return;
 		}
 
@@ -209,18 +213,20 @@ cman_callback(cman_handle_t ch, void *privdata, int reason, int arg)
 			if (node_has_fencing(cur_nodeid)) {
 				struct pending_fence_node *pf;
 
-				cpgl_debug("Lost node %d\n", cur_nodeid);
+				logt_print(LOG_DEBUG, "Lost node %d\n", cur_nodeid);
 				pf = do_alloc(sizeof(*pf));
 				pf->nodeid = cur_nodeid;
 				pf->fail_time = cur_time;
 				list_append(&pending_fencing, pf);
 			} else {
-				cpgl_debug("Lost node %d but fencing not configured\n",
+				logt_print(LOG_DEBUG, "Lost node %d but fencing not configured\n",
 					cur_nodeid);
 			}
 		}
 	} else if (reason == CMAN_REASON_TRY_SHUTDOWN) {
 		cman_shutdown_requested = 1;
+	} else if (reason == CMAN_REASON_CONFIG_UPDATE) {
+		init_logging(1);
 	}
 }
 
@@ -228,20 +234,20 @@ static void
 wait_for_fencing_join(int nodeid)
 {
 	if (node_has_fencing(nodeid)) {
-		cpgl_debug("Waiting for fence domain join operation to complete\n");
+		logt_print(LOG_DEBUG, "Waiting for fence domain join operation to complete\n");
 		while (!shutdown_pending && !fence_domain_joined())
 			sleep(1);
-		cpgl_debug("Fence domain joined\n");
+		logt_print(LOG_DEBUG, "Fence domain joined\n");
 	} else
-		cpgl_debug("No fencing is configured, not waiting\n");
+		logt_print(LOG_DEBUG, "No fencing is configured, not waiting\n");
 }
 
 static void
 wait_for_quorum_formation(cman_handle_t ch) {
-	cpgl_debug("Waiting for quorum to form\n");
+	logt_print(LOG_DEBUG, "Waiting for quorum to form\n");
 	while (!shutdown_pending && !(cluster_quorate = cman_is_quorate(ch)))
 		sleep(1);
-	cpgl_debug("Quorum formed\n");
+	logt_print(LOG_DEBUG, "Quorum formed\n");
 }
 
 static int
@@ -251,10 +257,10 @@ cman_connect(cman_handle_t *ch)
 
 	*ch = cman_init(NULL);
 	if (!*ch) {
-		cpgl_debug("Waiting for CMAN to start\n");
+		logt_print(LOG_DEBUG, "Waiting for CMAN to start\n");
 		while (!shutdown_pending && !(*ch = cman_init(NULL)))
 			sleep(1);
-		cpgl_debug("CMAN started\n");
+		logt_print(LOG_DEBUG, "CMAN started\n");
 	}
 
 	return 0;
@@ -425,7 +431,7 @@ send_lock_msg(struct cpg_lock_msg *m)
 	do {
 		ret = cpg_mcast_joined(cpg, CPG_TYPE_AGREED, &iov, 1);
 		if (ret != CPG_OK) {
-			cpgl_debug("send_lock_msg() failed\n");
+			logt_print(LOG_DEBUG, "send_lock_msg() failed\n");
 			usleep(250000);
 		}
 	} while (ret != CPG_OK && !shutdown_pending);
@@ -449,7 +455,7 @@ send_grant(struct request_node *n)
 {
 	struct cpg_lock_msg m;
 
-	cpgl_debug("-> sending grant %s to %d:%d:%d\n",
+	logt_print(LOG_DEBUG, "-> sending grant %s to %d:%d:%d\n",
 		n->l.resource, n->l.owner_nodeid, n->l.owner_pid, n->l.owner_tid);
 
 	memset(&m, 0, sizeof(m));
@@ -508,7 +514,7 @@ grant_next(struct cpg_lock_msg *m)
 
 		/* Send grant */
 		if (r->l.state == LOCK_PENDING) {
-			cpgl_debug("LOCK %s: grant to %d:%d:%d\n", m->resource,
+			logt_print(LOG_DEBUG, "LOCK %s: grant to %d:%d:%d\n", m->resource,
 			       r->l.owner_nodeid, r->l.owner_pid, r->l.owner_tid);
 			/* don't send dup grants */
 			r->l.state = LOCK_HELD;
@@ -545,9 +551,9 @@ purge_requests(uint32_t nodeid, uint32_t pid)
 
 	if (count) {
 		if (pid) {
-			cpgl_debug("RECOVERY: purged %d requests from %d:%d\n", count, nodeid, pid);
+			logt_print(LOG_DEBUG, "RECOVERY: purged %d requests from %d:%d\n", count, nodeid, pid);
 		} else {
-			cpgl_debug("RECOVERY: purged %d requests from node %d\n", count, nodeid);
+			logt_print(LOG_DEBUG, "RECOVERY: purged %d requests from node %d\n", count, nodeid);
 		}
 	}
 }
@@ -575,7 +581,7 @@ del_client(int fd)
 	if (!pid)
 		return;
 
-	cpgl_debug("RECOVERY: Looking for locks held by PID %d\n", pid);
+	logt_print(LOG_DEBUG, "RECOVERY: Looking for locks held by PID %d\n", pid);
 
 	/* This may not be needed */
 	purge_requests(my_node_id, pid);
@@ -593,7 +599,7 @@ del_client(int fd)
 		    l->l.state != LOCK_HELD)
 			continue;
 
-		cpgl_debug("RECOVERY: Releasing %s \n", l->l.resource);
+		logt_print(LOG_DEBUG, "RECOVERY: Releasing %s \n", l->l.resource);
 
 		l->l.state = LOCK_FREE;
 		strncpy(m.resource, l->l.resource, sizeof(m.resource));
@@ -602,9 +608,9 @@ del_client(int fd)
 	}
 
 	if (recovered) {
-		cpgl_debug("RECOVERY: %d locks from local PID %d\n", recovered, pid);
+		logt_print(LOG_DEBUG, "RECOVERY: %d locks from local PID %d\n", recovered, pid);
 	}
-	cpgl_debug("RECOVERY: Complete\n");
+	logt_print(LOG_DEBUG, "RECOVERY: Complete\n");
 }
 
 
@@ -622,7 +628,7 @@ del_node(uint32_t nodeid)
 		*/
 		list_for(&locks, l, x) {
 			if (l->l.owner_nodeid == nodeid) {
-				cpgl_debug("RECOVERY: LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
+				logt_print(LOG_DEBUG, "RECOVERY: LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
 					l->l.resource,
 					l->l.owner_nodeid, l->l.owner_pid,
 					group_members->nodeid, group_members->pid);
@@ -633,7 +639,7 @@ del_node(uint32_t nodeid)
 		return;
 	}
 
-	cpgl_debug("RECOVERY: I am oldest node in the group, recovering locks\n");
+	logt_print(LOG_DEBUG, "RECOVERY: I am oldest node in the group, recovering locks\n");
 
 	/* pass 1: purge outstanding requests from this node. */
 
@@ -649,13 +655,13 @@ del_node(uint32_t nodeid)
 
 	list_for(&locks, l, x) {
 		if (l->l.owner_nodeid == nodeid && l->l.state == LOCK_HELD) {
-			cpgl_debug("RECOVERY: Releasing %s held by dead node %d\n",
+			logt_print(LOG_DEBUG, "RECOVERY: Releasing %s held by dead node %d\n",
 				l->l.resource, nodeid);
 
 			l->l.state = LOCK_FREE;
 			strncpy(m.resource, l->l.resource, sizeof(m.resource));
 			if (grant_next(&m) == 0) {
-				cpgl_debug("RECOVERY: HELD LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
+				logt_print(LOG_DEBUG, "RECOVERY: HELD LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
 					l->l.resource,
 					l->l.owner_nodeid, l->l.owner_pid,
 					my_node_id, getpid());
@@ -669,7 +675,7 @@ del_node(uint32_t nodeid)
 		} else if (l->l.owner_nodeid == nodeid && l->l.state == LOCK_FREE) {
 			strncpy(m.resource, l->l.resource, sizeof(m.resource));
 			if (grant_next(&m) == 0) {
-				cpgl_debug("RECOVERY: FREE LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
+				logt_print(LOG_DEBUG, "RECOVERY: FREE LOCK UPDATED: %s [%d:%d]=>[%d:%d]\n",
 					l->l.resource,
 					l->l.owner_nodeid, l->l.owner_pid,
 					my_node_id, getpid());
@@ -681,13 +687,13 @@ del_node(uint32_t nodeid)
 	}
 
 	if (recovered) {
-		cpgl_debug("RECOVERY: %d locks from node %d\n", recovered, nodeid);
+		logt_print(LOG_DEBUG, "RECOVERY: %d locks from node %d\n", recovered, nodeid);
 	}
 	if (granted) {
-		cpgl_debug("RECOVERY: %d pending locks granted\n", granted);
+		logt_print(LOG_DEBUG, "RECOVERY: %d pending locks granted\n", granted);
 	}
 
-	cpgl_debug("RECOVERY: Complete\n");
+	logt_print(LOG_DEBUG, "RECOVERY: Complete\n");
 }
 
 
@@ -760,19 +766,19 @@ grant_client(struct lock_node *l)
 
 	c = find_client(l->l.owner_pid);
 	if (!c) {
-		cpgl_debug("can't find client for pid %d\n", l->l.owner_pid);
+		logt_print(LOG_DEBUG, "can't find client for pid %d\n", l->l.owner_pid);
 		return 1;
 	}
 
 	if (c->fd < 0) {
-		cpgl_debug(" Client has bad fd\n");
+		logt_print(LOG_DEBUG, " Client has bad fd\n");
 		return -1;
 	}
 
 	if (write_retry(c->fd, &m, sizeof(m), NULL) < 0) {
 		/* no client anymore; drop and send to next guy XXX */
 		/* This should be handled by our main loop */
-		//cpgl_debug("Failed to notify client!\n");
+		//logt_print(LOG_DEBUG, "Failed to notify client!\n");
 	}
 
 	return 0;
@@ -794,19 +800,19 @@ nak_client(struct request_node *l)
 
 	c = find_client(l->l.owner_pid);
 	if (!c) {
-		cpgl_debug("can't find client for pid %d\n", l->l.owner_pid);
+		logt_print(LOG_DEBUG, "can't find client for pid %d\n", l->l.owner_pid);
 		return 1;
 	}
 
 	if (c->fd < 0) {
-		cpgl_debug(" Client has bad fd\n");
+		logt_print(LOG_DEBUG, " Client has bad fd\n");
 		return -1;
 	}
 
 	if (write_retry(c->fd, &m, sizeof(m), NULL) < 0) {
 		/* no client anymore; drop and send to next guy XXX */
 		/* This should be handled by our main loop */
-		//cpgl_debug("Failed to notify client!\n");
+		//logt_print(LOG_DEBUG, "Failed to notify client!\n");
 	}
 
 	return 0;
@@ -838,7 +844,7 @@ process_lock(struct cpg_lock_msg *m)
 	if (!joined)
 		return 0;
 
-	cpgl_debug("LOCK %s: queue for %d:%d:%d\n", m->resource,
+	logt_print(LOG_DEBUG, "LOCK %s: queue for %d:%d:%d\n", m->resource,
 	       m->owner_nodeid, m->owner_pid, m->owner_tid);
 	queue_request(m);
 
@@ -914,14 +920,14 @@ process_grant(struct cpg_lock_msg *m, uint32_t nodeid)
 		if (l->l.state == LOCK_HELD) {
 			if (m->owner_pid == 0 ||
 			    m->owner_nodeid == 0) {
-				cpgl_debug("GRANT averted\n");
+				logt_print(LOG_DEBUG, "GRANT averted\n");
 				return 0;
 			}
 		} else {
 			l->l.state = LOCK_HELD;
 		}
 
-		cpgl_debug("GRANT %s: to %d:%d:%d\n",
+		logt_print(LOG_DEBUG, "GRANT %s: to %d:%d:%d\n",
 			m->resource, m->owner_nodeid,
 			m->owner_pid, m->owner_tid);
 
@@ -962,7 +968,7 @@ process_grant(struct cpg_lock_msg *m, uint32_t nodeid)
 		if (group_members->nodeid == my_node_id &&
 		    !is_member(l->l.owner_nodeid)) {
 
-			cpgl_debug("GRANT to non-member %d; giving to next requestor\n",
+			logt_print(LOG_DEBUG, "GRANT to non-member %d; giving to next requestor\n",
 				l->l.owner_nodeid);
 			
 			l->l.state = LOCK_FREE;
@@ -1037,7 +1043,7 @@ process_unlock(struct cpg_lock_msg *m, uint32_t nodeid)
                    GRANT to the first node on the request queue */
 		if (l->l.owner_nodeid == m->owner_nodeid &&
 		    l->l.owner_pid == m->owner_pid) {
-			cpgl_debug("UNLOCK %s: %d:%d:%d\n",
+			logt_print(LOG_DEBUG, "UNLOCK %s: %d:%d:%d\n",
 				m->resource, m->owner_nodeid, m->owner_pid, m->owner_tid);
 			l->l.state = LOCK_FREE;
 			if (l->l.owner_nodeid == my_node_id) {
@@ -1063,7 +1069,7 @@ find_lock(struct cpg_lock_msg *m)
 	list_for(&locks, l, x) {
 		if (m->lockid == l->l.local_id) {
 			strncpy(m->resource, l->l.resource, sizeof(m->resource));
-			cpgl_debug("LOCK %d -> %s\n", m->lockid, m->resource);
+			logt_print(LOG_DEBUG, "LOCK %d -> %s\n", m->lockid, m->resource);
 			m->owner_nodeid = l->l.owner_nodeid;
 			m->owner_pid = l->l.owner_pid;
 			m->owner_tid = l->l.owner_tid;
@@ -1084,7 +1090,7 @@ process_join(struct cpg_lock_msg *m, uint32_t nodeid, uint32_t pid)
 
 	list_for(&group_members, n, x) {
 		if (n->nodeid == nodeid) {
-			cpgl_debug("IGNORING JOIN from existing member %d.%d (%d.%d)\n",
+			logt_print(LOG_DEBUG, "IGNORING JOIN from existing member %d.%d (%d.%d)\n",
 				nodeid, pid, nodeid, n->pid);
 			return 0;
 		}
@@ -1093,13 +1099,13 @@ process_join(struct cpg_lock_msg *m, uint32_t nodeid, uint32_t pid)
 	n = do_alloc(sizeof(*n));
 	n->nodeid = nodeid;
 	n->pid = pid;
-	cpgl_debug("JOIN: node %d.%u", n->nodeid, n->pid);
+	logt_print(LOG_DEBUG, "JOIN: node %d.%u", n->nodeid, n->pid);
 	if (nodeid == my_node_id) {
-		cpgl_debug(" (self)");
+		logt_print(LOG_DEBUG, " (self)");
 		joined = 1;
 	}
 	total_members++;
-	cpgl_debug("\n");
+	logt_print(LOG_DEBUG, "\n");
 	list_insert(&group_members, n);
 
 	return 0;
@@ -1112,7 +1118,7 @@ process_request(struct cpg_lock_msg *m, uint32_t nodeid, uint32_t pid)
 	swab_cpg_lock_msg(m);
 
 	if (m->request == MSG_HALT) {
-		cpgl_debug("FAULT: Halting operations; see node %d\n", m->owner_nodeid);
+		logt_print(LOG_DEBUG, "FAULT: Halting operations; see node %d\n", m->owner_nodeid);
 		while (1) 
 			sleep(30);
 	}
@@ -1154,7 +1160,7 @@ cpg_deliver_func(cpg_handle_t h,
 {
 
 	if (msglen != sizeof(struct cpg_lock_msg)) {
-		cpgl_debug("Invalid message size %d\n", (int)msglen);
+		logt_print(LOG_DEBUG, "Invalid message size %d\n", (int)msglen);
 	}
 
 	process_request((struct cpg_lock_msg *)msg, nodeid, pid);
@@ -1180,7 +1186,7 @@ cpg_config_change(cpg_handle_t h,
 	old_msg(&m);
 
 	if (total_members == 0) {
-		cpgl_debug("JOIN: Setting up initial node list\n");
+		logt_print(LOG_DEBUG, "JOIN: Setting up initial node list\n");
 		for (x = 0; x < memberlen; x++) {
 			for (y = 0; y < joinlen; y++) {
 				if (join[y].nodeid == members[x].nodeid)
@@ -1191,16 +1197,16 @@ cpg_config_change(cpg_handle_t h,
 				n = do_alloc(sizeof(*n));
 				n->nodeid = members[x].nodeid;
 				n->pid = members[x].pid;
-				cpgl_debug("JOIN: node %d.%u\n", n->nodeid, n->pid);
+				logt_print(LOG_DEBUG, "JOIN: node %d.%u\n", n->nodeid, n->pid);
 				list_insert(&group_members, n);
 			}
 		}
-		cpgl_debug("JOIN: Done\n");
+		logt_print(LOG_DEBUG, "JOIN: Done\n");
 
 		total_members = memberlen;
 	}
 
-	//cpgl_debug("members %d now, %d joined, %d left\n", memberlen, joinlen, leftlen);
+	//logt_print(LOG_DEBUG, "members %d now, %d joined, %d left\n", memberlen, joinlen, leftlen);
 #if 0
 
 	/* XXX process join on receipt of JOIN message rather than here 
@@ -1209,7 +1215,7 @@ cpg_config_change(cpg_handle_t h,
 	for (x = 0; x < joinlen; x++) {
 		n = do_alloc(sizeof(*n));
 		n->nodeid = join[x].nodeid;
-		cpgl_debug("ADD: node %d\n", n->nodeid);
+		logt_print(LOG_DEBUG, "ADD: node %d\n", n->nodeid);
 		list_insert(&group_members, n);
 	}
 #endif
@@ -1219,17 +1225,17 @@ cpg_config_change(cpg_handle_t h,
 			if (n->nodeid == left[x].nodeid) {
 				if (n->pid == left[x].pid) {
 					if (n->nodeid == my_node_id) {
-						cpgl_debug("Received DELETE message for self. Exiting.");
+						logt_print(LOG_DEBUG, "Received DELETE message for self. Exiting.");
 						exit(0);
 					}
 					list_remove(&group_members, n);
-					cpgl_debug("DELETE: node %d.%u\n", n->nodeid, n->pid);
+					logt_print(LOG_DEBUG, "DELETE: node %d.%u\n", n->nodeid, n->pid);
 					del_node(n->nodeid);
 					cpglock_members_removed++;
 					free(n);
 					break;
 				} else {
-					cpgl_debug("DUPE NODE %d LEFT (%u != %u)\n",
+					logt_print(LOG_DEBUG, "DUPE NODE %d LEFT (%u != %u)\n",
 						n->nodeid, n->pid, left[x].pid);
 				}
 			}
@@ -1241,11 +1247,11 @@ cpg_config_change(cpg_handle_t h,
 		total_members = 0;
 
 #if 0
-	cpgl_debug("MEMBERS:");
+	logt_print(LOG_DEBUG, "MEMBERS:");
 	list_for(&group_members, n, y) {
-		cpgl_debug(" %d.%u", n->nodeid, n->pid);
+		logt_print(LOG_DEBUG, " %d.%u", n->nodeid, n->pid);
 	}
-	cpgl_debug("\n");
+	logt_print(LOG_DEBUG, "\n");
 #endif
 
 	return;
@@ -1336,6 +1342,35 @@ cpg_init(void)
 	return 0;
 }
 
+static void init_logging(int reconf)
+{
+	int ccs_handle;
+	int mode = LOG_MODE_OUTPUT_FILE | LOG_MODE_OUTPUT_SYSLOG;
+	int syslog_facility = SYSLOGFACILITY;
+	int syslog_priority = SYSLOGLEVEL;
+	char logfile[PATH_MAX];
+	int logfile_priority = SYSLOGLEVEL;
+	int debug = 0;
+
+	memset(logfile, 0, PATH_MAX);
+	snprintf(logfile, sizeof(logfile) - 1, LOGDIR "/cpglockd.log");
+
+	ccs_handle = ccs_connect();
+	if (ccs_handle > 0) {
+		ccs_read_logging(ccs_handle, "cpglockd", &debug, &mode,
+				 &syslog_facility, &syslog_priority, &logfile_priority, logfile);
+		ccs_disconnect(ccs_handle);
+        }
+
+	if (nofork)
+		mode |= LOG_MODE_OUTPUT_STDERR;
+
+	if (!reconf)
+		logt_init("cpglockd", mode, syslog_facility, syslog_priority, logfile_priority, logfile);
+	else
+		logt_conf("cpglockd", mode, syslog_facility, syslog_priority, logfile_priority, logfile);
+}
+
 int
 main(int argc, char **argv)
 {
@@ -1345,7 +1380,6 @@ main(int argc, char **argv)
 	int afd = -1;
 	int cman_fd;
 	int n,x;
-	int nofork = 0;
 	int wait_for_quorum = 1;
 	int wait_for_fencing = 1;
 	int opt;
@@ -1391,6 +1425,7 @@ main(int argc, char **argv)
 		}
 		update_pidfile((char *) "cpglockd");
 	}
+	init_logging(0);
 
 	setup_signal(SIGPIPE, SIG_IGN);
 	setup_signal(SIGTERM, flag_shutdown);
@@ -1520,7 +1555,7 @@ main(int argc, char **argv)
 
 			ret = fenced_node_info(pf_node->nodeid, &fn);
 			if (ret < 0) {
-				cpgl_debug("Unable to get last fenced time for node %d\n",
+				logt_print(LOG_DEBUG, "Unable to get last fenced time for node %d\n",
 					pf_node->nodeid);
 				victim = 1;
 				lft = 0;
@@ -1530,7 +1565,7 @@ main(int argc, char **argv)
 			}
 
 			if (lft > pf_node->fail_time) {
-				cpgl_debug("Fencing for node %d finished at %ld (>%ld)\n",
+				logt_print(LOG_DEBUG, "Fencing for node %d finished at %ld (>%ld)\n",
 					pf_node->nodeid, lft, pf_node->fail_time);
 				list_remove(&pending_fencing, pf_node);
 				free(pf_node);
@@ -1554,18 +1589,18 @@ main(int argc, char **argv)
 				do {
 					usleep(250000);
 					if (fenced_node_info(pf_node->nodeid, &fn) < 0) {
-						cpgl_debug("Unable to get fenced data for node %d\n",
+						logt_print(LOG_DEBUG, "Unable to get fenced data for node %d\n",
 							pf_node->nodeid);
 					} else
 						victim = fn.victim;
 				} while (!victim && retries++ < 4);
 
 				if (!victim) {
-					cpgl_debug("First entry in list and victim == 0, removing %d from pending fencing\n", pf_node->nodeid);
+					logt_print(LOG_DEBUG, "First entry in list and victim == 0, removing %d from pending fencing\n", pf_node->nodeid);
 					list_remove(&pending_fencing, pf_node);
 					free(pf_node);
 				} else {
-					cpgl_debug("fenced_node.victim flipped to 1 for %d\n",
+					logt_print(LOG_DEBUG, "fenced_node.victim flipped to 1 for %d\n",
 						pf_node->nodeid);
 				}
 				goto fence_check;
@@ -1604,7 +1639,7 @@ main(int argc, char **argv)
 					continue;
 				--n;
 				if (read_retry(client->fd, &m, sizeof(m), NULL) < 0) {
-					cpgl_debug("Closing client fd %d pid %d: %d\n",
+					logt_print(LOG_DEBUG, "Closing client fd %d pid %d: %d\n",
 					       client->fd, client->pid, errno);
 			
 					del_client(client->fd);
@@ -1619,7 +1654,7 @@ main(int argc, char **argv)
 				}
 
 				if (m.request == MSG_UNLOCK) {
-					//cpgl_debug("Unlock from fd %d\n", client->fd);
+					//logt_print(LOG_DEBUG, "Unlock from fd %d\n", client->fd);
 					find_lock(&m);
 					if (grant_next(&m) == 0)
 						send_unlock(&m);


More information about the cluster-commits mailing list