public inbox for cluster-cvs@sourceware.org help / color / mirror / Atom feed
From: ccaulfield@sourceware.org To: cluster-cvs@sources.redhat.com, cluster-devel@redhat.com Subject: Cluster Project branch, master, updated. cluster-2.99.05-47-gcfbf8e8 Date: Thu, 03 Jul 2008 13:13:00 -0000 [thread overview] Message-ID: <20080703131323.26710.qmail@sourceware.org> (raw) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Cluster Project". http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=cfbf8e8fd634667de2b02344fadb6452080556af The branch, master has been updated via cfbf8e8fd634667de2b02344fadb6452080556af (commit) from 58302ba8a4b0da965f0827f048070b8c514070c2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cfbf8e8fd634667de2b02344fadb6452080556af Author: Christine Caulfield <ccaulfie@redhat.com> Date: Thu Jul 3 14:11:43 2008 +0100 [CMAN] Fix logging options Fix up the logging for the cman plugin so that it consistently honours both settings in cluster.conf and 'cman_tool join -d'. This has exposed a couple of bugs in openais which should be addressed shortly. Signed-off-by: Christine Caulfield <ccaulfie@redhat.com> ----------------------------------------------------------------------- Summary of changes: cman/daemon/ais.c | 28 +++--------- cman/daemon/barrier.c | 1 + cman/daemon/cman-preconfig.c | 98 ++++++++++++++++++++++++++++++----------- cman/daemon/cman.h | 3 + cman/daemon/cmanconfig.c | 3 +- cman/daemon/cnxman-private.h | 3 - cman/daemon/commands.c | 1 + cman/daemon/logging.c | 1 + cman/daemon/logging.h | 4 +- 9 files changed, 88 insertions(+), 54 deletions(-) diff --git a/cman/daemon/ais.c b/cman/daemon/ais.c index 6c05397..65ebc2e 100644 --- a/cman/daemon/ais.c +++ b/cman/daemon/ais.c @@ -145,42 +145,28 @@ static int cman_exec_init_fn(struct objdb_iface_ver0 *objdb) unsigned int object_handle; char pipe_msg[256]; - if (getenv("CMAN_DEBUGLOG")) - debug_mask = atoi(getenv("CMAN_DEBUGLOG")); - - set_debuglog(debug_mask); - - /* We need to set this up to internal defaults too early */ - openlog("openais", LOG_CONS|LOG_PID, SYSLOGFACILITY); - - /* Enable stderr logging if requested by cman_tool */ - if (debug_mask) { - logsys_config_subsys_set("CMAN", LOGSYS_TAG_LOG, LOG_DEBUG); - } - if (getenv("CMAN_PIPE")) startup_pipe = atoi(getenv("CMAN_PIPE")); - P_DAEMON("CMAN starting"); - /* Get our config variables */ objdb->object_find_reset(OBJECT_PARENT_HANDLE); objdb->object_find(OBJECT_PARENT_HANDLE, "cluster", strlen("cluster"), &cluster_parent_handle); + objdb->object_find_reset(cluster_parent_handle); if (objdb->object_find(cluster_parent_handle, "cman", strlen("cman"), &object_handle) == 0) { objdb_get_int(objdb, object_handle, "quorum_dev_poll", &quorumdev_poll); objdb_get_int(objdb, object_handle, "shutdown_timeout", &shutdown_timeout); objdb_get_int(objdb, object_handle, "ccsd_poll", &ccsd_poll_interval); + objdb_get_int(objdb, object_handle, "debug_mask", &debug_mask); - /* Only use the CCS version of this if it was not overridden on the command-line */ - if (!getenv("CMAN_DEBUGLOG")) - { - objdb_get_int(objdb, object_handle, "debug_mask", &debug_mask); - set_debuglog(debug_mask); - } + /* All other debugging options should already have been set in preconfig */ + set_debuglog(debug_mask); } + log_printf(LOG_DEBUG, "CC: debug message"); + log_printf(LOG_INFO, "CC: info message"); + P_DAEMON(CMAN_NAME " starting"); /* Open local sockets and initialise I/O queues */ read_cman_config(objdb, &config_version); diff --git a/cman/daemon/barrier.c b/cman/daemon/barrier.c index 3242e03..63c2c64 100644 --- a/cman/daemon/barrier.c +++ b/cman/daemon/barrier.c @@ -27,6 +27,7 @@ #include "commands.h" #include "logging.h" #include "barrier.h" +#include "cman.h" #include "ais.h" extern int we_are_a_cluster_member; diff --git a/cman/daemon/cman-preconfig.c b/cman/daemon/cman-preconfig.c index 9467168..26adf55 100644 --- a/cman/daemon/cman-preconfig.c +++ b/cman/daemon/cman-preconfig.c @@ -170,6 +170,38 @@ static int address_family(char *addr, struct sockaddr_storage *ssaddr) } +/* Find the "CMAN" logger_subsys object. Or create one if it does not + exist +*/ +static unsigned int find_cman_logger(struct objdb_iface_ver0 *objdb, unsigned int object_handle) +{ + unsigned int subsys_handle; + char *str; + + objdb->object_find_reset(object_handle); + while (!objdb->object_find(object_handle, + "logger_subsys", strlen("logger_subsys"), &subsys_handle)) { + + if (objdb_get_string(objdb, subsys_handle, "subsys", &str)) { + continue; + } + if (strcmp(str, CMAN_NAME) == 0) + return subsys_handle; + } + + /* We can't find it ... create one */ + if (objdb->object_create(object_handle, &subsys_handle, + "logger_subsys", strlen("logger_subsys")) == 0) { + + objdb->object_key_create(subsys_handle, "subsys", strlen("subsys"), + CMAN_NAME, strlen(CMAN_NAME)+1); + } + + return subsys_handle; + +} + + static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, int portnum) { unsigned int totem_object_handle; @@ -200,29 +232,24 @@ static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, "totem", strlen("totem")); } - objdb->object_find_reset(OBJECT_PARENT_HANDLE); - if (objdb->object_find(OBJECT_PARENT_HANDLE, - "totem", strlen("totem"), &totem_object_handle) == 0) { - - if (objdb->object_create(totem_object_handle, &interface_object_handle, - "interface", strlen("interface")) == 0) { + if (objdb->object_create(totem_object_handle, &interface_object_handle, + "interface", strlen("interface")) == 0) { - sprintf(tmp, "%d", num_interfaces); - objdb->object_key_create(interface_object_handle, "ringnumber", strlen("ringnumber"), - tmp, strlen(tmp)+1); + sprintf(tmp, "%d", num_interfaces); + objdb->object_key_create(interface_object_handle, "ringnumber", strlen("ringnumber"), + tmp, strlen(tmp)+1); - objdb->object_key_create(interface_object_handle, "bindnetaddr", strlen("bindnetaddr"), - ifaddr, strlen(ifaddr)+1); + objdb->object_key_create(interface_object_handle, "bindnetaddr", strlen("bindnetaddr"), + ifaddr, strlen(ifaddr)+1); - objdb->object_key_create(interface_object_handle, "mcastaddr", strlen("mcastaddr"), - mcast, strlen(mcast)+1); + objdb->object_key_create(interface_object_handle, "mcastaddr", strlen("mcastaddr"), + mcast, strlen(mcast)+1); - sprintf(tmp, "%d", portnum); - objdb->object_key_create(interface_object_handle, "mcastport", strlen("mcastport"), - tmp, strlen(tmp)+1); + sprintf(tmp, "%d", portnum); + objdb->object_key_create(interface_object_handle, "mcastport", strlen("mcastport"), + tmp, strlen(tmp)+1); - num_interfaces++; - } + num_interfaces++; } return ret; } @@ -432,6 +459,10 @@ static int get_env_overrides() expected_votes = 1; votes = 1; } + if (getenv("CMAN_DEBUGLOG")) { + debug_mask = atoi(getenv("CMAN_DEBUGLOG")); + } + return 0; } @@ -680,19 +711,15 @@ static void add_cman_overrides(struct objdb_iface_ver0 *objdb) char *logstr; char *logfacility; - logfacility = logsys_facility_name_get(SYSLOGFACILITY); + logger_object_handle = find_cman_logger(objdb, object_handle); + if (objdb_get_string(objdb, object_handle, "syslog_facility", &logstr)) { objdb->object_key_create(object_handle, "syslog_facility", strlen("syslog_facility"), logfacility, strlen(logfacility)+1); } - objdb->object_create(object_handle, &logger_object_handle, - "logger_subsys", strlen("logger_subsys")); - objdb->object_key_create(logger_object_handle, "subsys", strlen("subsys"), - "CMAN", strlen("CMAN")+1); - if (objdb_get_string(objdb, object_handle, "to_file", &logstr)) { objdb->object_key_create(object_handle, "to_file", strlen("to_file"), "yes", strlen("yes")+1); @@ -703,11 +730,24 @@ static void add_cman_overrides(struct objdb_iface_ver0 *objdb) LOGDIR "/cman.log", strlen(LOGDIR "/cman.log")+1); } + objdb->object_key_create(object_handle, "syslog_facility", strlen("syslog_facility"), + "local4", strlen("local4")+1); + + if (debug_mask) { - objdb->object_key_create(logger_object_handle, "debug", strlen("debug"), - "on", strlen("on")+1); objdb->object_key_create(object_handle, "to_stderr", strlen("to_stderr"), "yes", strlen("yes")+1); + objdb->object_key_create(logger_object_handle, "debug", strlen("debug"), + "on", strlen("on")+1); + objdb->object_key_create(logger_object_handle, "syslog_level", strlen("syslog_level"), + "debug", strlen("debug")+1); + + } + else { + char *loglevel; + loglevel = logsys_priority_name_get(SYSLOGLEVEL); + objdb->object_key_create(logger_object_handle, "syslog_level", strlen("syslog_level"), + loglevel, strlen(loglevel)+1); } } @@ -742,7 +782,11 @@ static void add_cman_overrides(struct objdb_iface_ver0 *objdb) objdb->object_key_create(object_handle, "two_node", strlen("two_node"), str, strlen(str) + 1); } - + if (debug_mask) { + sprintf(str, "%d", debug_mask); + objdb->object_key_create(object_handle, "debug_mask", strlen("debug_mask"), + str, strlen(str) + 1); + } } /* Make sure we load our alter-ego - the main cman module */ diff --git a/cman/daemon/cman.h b/cman/daemon/cman.h index e0203a4..748602a 100644 --- a/cman/daemon/cman.h +++ b/cman/daemon/cman.h @@ -1,3 +1,6 @@ /* General cman bits */ extern int write_cman_pipe(char *message); extern void close_cman_pipe(void); + +/* How we announce ourself in syslog */ +#define CMAN_NAME "CMAN" diff --git a/cman/daemon/cmanconfig.c b/cman/daemon/cmanconfig.c index 294724e..98b615b 100644 --- a/cman/daemon/cmanconfig.c +++ b/cman/daemon/cmanconfig.c @@ -16,11 +16,12 @@ #include "cnxman-private.h" #include "logging.h" #include "commands.h" +#include "cman.h" #include "cmanconfig.h" LOGSYS_DECLARE_SUBSYS (CMAN_NAME, LOG_INFO); #include "nodelist.h" #include "ais.h" -#include "cman.h" + /* Local vars - things we get from ccs */ int two_node; diff --git a/cman/daemon/cnxman-private.h b/cman/daemon/cnxman-private.h index 83d40de..aa012bb 100644 --- a/cman/daemon/cnxman-private.h +++ b/cman/daemon/cnxman-private.h @@ -8,9 +8,6 @@ #define CNXMAN_MINOR_VERSION 1 #define CNXMAN_PATCH_VERSION 0 -/* How we announce ourself in syslog */ -#define CMAN_NAME "CMAN" - struct cman_timer { struct list list; diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c index 7b9fd75..ebc0253 100644 --- a/cman/daemon/commands.c +++ b/cman/daemon/commands.c @@ -28,6 +28,7 @@ #include <openais/service/timer.h> #include <openais/totem/aispoll.h> #include "list.h" +#include "cman.h" #include "cnxman-socket.h" #include "cnxman-private.h" #include "daemon.h" diff --git a/cman/daemon/logging.c b/cman/daemon/logging.c index eb488d7..727c4ad 100644 --- a/cman/daemon/logging.c +++ b/cman/daemon/logging.c @@ -10,6 +10,7 @@ #include <openais/service/logsys.h> #include "list.h" +#include "cman.h" #include "cnxman-socket.h" #include "cnxman-private.h" #include "logging.h" diff --git a/cman/daemon/logging.h b/cman/daemon/logging.h index 6a25e76..f2d84cd 100644 --- a/cman/daemon/logging.h +++ b/cman/daemon/logging.h @@ -11,7 +11,7 @@ extern void set_debuglog(int subsystems); extern int subsys_mask; -#define P_BARRIER(fmt, args...) if (subsys_mask & CMAN_DEBUG_BARRIER) log_printf(logsys_mkpri(LOG_LEVEL_DEBUG, logsys_subsys_id), "barrier: " fmt, ## args) -#define P_MEMB(fmt, args...) if (subsys_mask & CMAN_DEBUG_MEMB) log_printf(LOG_LEVEL_DEBUG , "memb: " fmt, ## args) +#define P_BARRIER(fmt, args...) if (subsys_mask & CMAN_DEBUG_BARRIER) log_printf(LOG_LEVEL_DEBUG, "barrier: " fmt, ## args) +#define P_MEMB(fmt, args...) if (subsys_mask & CMAN_DEBUG_MEMB) log_printf(LOG_LEVEL_DEBUG, "memb: " fmt, ## args) #define P_DAEMON(fmt, args...) if (subsys_mask & CMAN_DEBUG_DAEMON) log_printf(LOG_LEVEL_DEBUG , "daemon: " fmt, ## args) #define P_AIS(fmt, args...) if (subsys_mask & CMAN_DEBUG_AIS) log_printf(LOG_LEVEL_DEBUG, "ais " fmt, ## args) hooks/post-receive -- Cluster Project
reply other threads:[~2008-07-03 13:13 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080703131323.26710.qmail@sourceware.org \ --to=ccaulfield@sourceware.org \ --cc=cluster-cvs@sources.redhat.com \ --cc=cluster-devel@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).