From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24861 invoked by alias); 7 May 2008 19:24:26 -0000 Received: (qmail 24831 invoked by uid 9478); 7 May 2008 19:24:26 -0000 Date: Wed, 07 May 2008 19:24:00 -0000 Message-ID: <20080507192426.24815.qmail@sourceware.org> From: jbrassow@sourceware.org To: cluster-cvs@sources.redhat.com, cluster-devel@redhat.com Subject: Cluster Project branch, RHEL5, updated. cmirror_1_1_15-62-g4d3d73c X-Git-Refname: refs/heads/RHEL5 X-Git-Reftype: branch X-Git-Oldrev: 8c73b983408ca5d1949b849e3912fc8a5b92760d X-Git-Newrev: 4d3d73c3d60e4cce5f92bb71ec9a16d8aef4c055 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2008-q2/txt/msg00261.txt.bz2 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=4d3d73c3d60e4cce5f92bb71ec9a16d8aef4c055 The branch, RHEL5 has been updated via 4d3d73c3d60e4cce5f92bb71ec9a16d8aef4c055 (commit) from 8c73b983408ca5d1949b849e3912fc8a5b92760d (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 4d3d73c3d60e4cce5f92bb71ec9a16d8aef4c055 Author: Jonathan Brassow Date: Wed May 7 14:24:19 2008 -0500 clogd: Comment fixes and clarifications Add UUID to message output to allow better tracking of errors to specific log instances. ----------------------------------------------------------------------- Summary of changes: cmirror-kernel/src/dm-clog-tfr.c | 15 +++++++++------ cmirror/src/cluster.c | 12 +++++++++++- cmirror/src/functions.c | 24 ++++++++++++------------ cmirror/src/local.c | 4 ++-- 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/cmirror-kernel/src/dm-clog-tfr.c b/cmirror-kernel/src/dm-clog-tfr.c index 6056c19..6126691 100644 --- a/cmirror-kernel/src/dm-clog-tfr.c +++ b/cmirror-kernel/src/dm-clog-tfr.c @@ -14,6 +14,8 @@ #include /* Unnecessary */ +#define SHORT_UUID(x) (strlen(x) > 8) ? ((x) + (strlen(x) - 8)) : (x) + static uint64_t seq = 0; /* @@ -186,8 +188,8 @@ resend: r = wait_for_completion_timeout(&(pkg.complete), 15 * HZ); if (!r) { - DMWARN("Request timed out on %s:%llu - retrying", - RQ_TYPE(request_type), pkg.seq); + DMWARN("[%s] Request timed out: [%s/%llu] - retrying", + SHORT_UUID(uuid), RQ_TYPE(request_type), pkg.seq); spin_lock(&receiving_list_lock); list_del_init(&(pkg.list)); spin_unlock(&receiving_list_lock); @@ -198,13 +200,14 @@ resend: pkg.start_time = (jiffies - pkg.start_time); do_div(pkg.start_time, HZ); if (pkg.start_time > 0) - DMWARN("Excessive delay in request processing, %llu sec for %s", - pkg.start_time, RQ_TYPE(request_type)); + DMWARN("Excessive delay in request processing, %llu sec: [%s/%llu]", + pkg.start_time, RQ_TYPE(request_type), + pkg.seq); } r = pkg.error; if (r) - DMERR("Server error while processing request [%s]: %d", - RQ_TYPE(request_type), r); + DMERR("[%s] Server error while processing request [%s]: %d", + SHORT_UUID(uuid), RQ_TYPE(request_type), r); out: spin_lock(&receiving_list_lock); diff --git a/cmirror/src/cluster.c b/cmirror/src/cluster.c index 504ee58..d1ab920 100644 --- a/cmirror/src/cluster.c +++ b/cmirror/src/cluster.c @@ -58,6 +58,7 @@ struct clog_cpg { /* Are we the first, or have we received checkpoint? */ int state; + int cpg_state; /* FIXME: debugging */ int free_me; struct queue *startup_queue; @@ -96,13 +97,20 @@ static int cluster_send(struct clog_tfr *tfr) iov.iov_base = tfr; iov.iov_len = sizeof(struct clog_tfr) + tfr->data_size; + if (entry->cpg_state != VALID) + LOG_ERROR("[%s] Attempt to send request to cluster while CPG not valid: " + "request = %s", SHORT_UUID(tfr->uuid), RQ_TYPE(tfr->request_type)); + r = cpg_mcast_joined(entry->handle, CPG_TYPE_AGREED, &iov, 1); if (r == CPG_OK) return 0; if (r == SA_AIS_ERR_TRY_AGAIN) return -EAGAIN; - LOG_ERROR("cpg_mcast_joined error: %d", r); + /* error codes found in openais/cpg.h */ + LOG_ERROR("cpg_mcast_joined error: %d%s", r, + (r == CPG_ERR_BAD_HANDLE) ? "/CPG_ERR_BAD_HANDLE" : + (r == CPG_ERR_ACCESS) ? "/CPG_ERR_ACCESS" : ""); tfr->error = -EBADE; return -EBADE; @@ -1157,6 +1165,7 @@ int create_cluster_cpg(char *str) return -EPERM; } + new->cpg_state = VALID; list_add(&new->list, &clog_cpg_list); LOG_DBG("New handle: %llu", (unsigned long long)new->handle); LOG_DBG("New name: %s", new->name.value); @@ -1175,6 +1184,7 @@ int destroy_cluster_cpg(char *str) list_for_each_entry_safe(del, tmp, &clog_cpg_list, list) if (!strncmp(del->name.value, str, CPG_MAX_NAME_LENGTH)) { + del->cpg_state = INVALID; r = cpg_leave(del->handle, &del->name); if (r != CPG_OK) LOG_ERROR("Error leaving CPG!"); diff --git a/cmirror/src/functions.c b/cmirror/src/functions.c index 2c917d2..822ec17 100644 --- a/cmirror/src/functions.c +++ b/cmirror/src/functions.c @@ -187,16 +187,16 @@ static int rw_log(struct log_c *lc, int do_write) r = lseek(lc->disk_fd, 0, SEEK_SET); if (r < 0) { - LOG_ERROR("rw_log: lseek failure: %s", - strerror(errno)); + LOG_ERROR("[%s] rw_log: lseek failure: %s", + SHORT_UUID(lc->uuid), strerror(errno)); return -errno; } if (do_write) { r = write(lc->disk_fd, lc->disk_buffer, lc->disk_size); if (r < 0) { - LOG_ERROR("rw_log: write failure: %s", - strerror(errno)); + LOG_ERROR("[%s] rw_log: write failure: %s", + SHORT_UUID(lc->uuid), strerror(errno)); return -EIO; /* Failed disk write */ } return 0; @@ -205,8 +205,8 @@ static int rw_log(struct log_c *lc, int do_write) /* Read */ r = read(lc->disk_fd, lc->disk_buffer, lc->disk_size); if (r < 0) - LOG_ERROR("rw_log: read failure: %s", - strerror(errno)); + LOG_ERROR("[%s] rw_log: read failure: %s", + SHORT_UUID(lc->uuid), strerror(errno)); if (r != lc->disk_size) return -EIO; /* Failed disk read */ return 0; @@ -929,16 +929,16 @@ static int clog_flush(struct clog_tfr *tfr, int server) */ if (server && (lc->disk_fd >= 0)) { r = tfr->error = write_log(lc); - if (r) { - LOG_ERROR("Error writing to disk log"); - return r; - } - LOG_DBG("[%s] Disk log written", SHORT_UUID(lc->uuid)); + if (r) + LOG_ERROR("[%s] Error writing to disk log", + SHORT_UUID(lc->uuid)); + else + LOG_DBG("[%s] Disk log written", SHORT_UUID(lc->uuid)); } lc->touched = 0; - return 0; + return r; } diff --git a/cmirror/src/local.c b/cmirror/src/local.c index b6aa0af..da69b9f 100644 --- a/cmirror/src/local.c +++ b/cmirror/src/local.c @@ -160,8 +160,8 @@ static int do_local_work(void *data) if (!tfr) return -EBADE; - LOG_DBG("Request from kernel received [%s/%s/%llu]", - RQ_TYPE(tfr->request_type), SHORT_UUID(tfr->uuid), + LOG_DBG("[%s] Request from kernel received: [%s/%llu]", + SHORT_UUID(tfr->uuid), RQ_TYPE(tfr->request_type), (unsigned long long)tfr->seq); switch (tfr->request_type) { case 0: hooks/post-receive -- Cluster Project