From 232235a9ddeaf33159ee8af809efee440b06c6d1 Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Tue, 27 Jul 2010 03:13:55 +0000 Subject: cluster/afr: Logging improvement for self-heal Signed-off-by: Pranith Kumar K Signed-off-by: Anand V. Avati BUG: 1037 (selfheal information in normal logging mode) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1037 --- xlators/cluster/afr/src/afr-dir-read.c | 6 ++---- xlators/cluster/afr/src/afr-self-heal-algorithm.c | 21 ++++++++++++--------- xlators/cluster/afr/src/afr-self-heal-common.c | 8 ++++++-- xlators/cluster/afr/src/afr.c | 16 ++++++++-------- 4 files changed, 28 insertions(+), 23 deletions(-) (limited to 'xlators/cluster/afr') diff --git a/xlators/cluster/afr/src/afr-dir-read.c b/xlators/cluster/afr/src/afr-dir-read.c index d2b8e5287..281fc78d3 100644 --- a/xlators/cluster/afr/src/afr-dir-read.c +++ b/xlators/cluster/afr/src/afr-dir-read.c @@ -163,10 +163,8 @@ out: sh_type_str, sizeof(sh_type_str)); gf_log (this->name, GF_LOG_NORMAL, - "%s self-heal triggered. " - "path: %s, " - "reason: checksums of " - "directory differ," + "%s self-heal triggered. path: %s, " + "reason: checksums of directory differ," " forced merge option set", sh_type_str, local->loc.path); diff --git a/xlators/cluster/afr/src/afr-self-heal-algorithm.c b/xlators/cluster/afr/src/afr-self-heal-algorithm.c index daac0ce47..51f5fd3df 100644 --- a/xlators/cluster/afr/src/afr-self-heal-algorithm.c +++ b/xlators/cluster/afr/src/afr-self-heal-algorithm.c @@ -947,17 +947,20 @@ sh_diff_loop_driver (call_frame_t *frame, xlator_t *this) int recurse = 0; off_t offset = 0; + char sh_type_str[256] = {0,}; priv = this->private; local = frame->local; sh = &local->self_heal; sh_priv = sh->private; + afr_self_heal_type_str_get(sh, sh_type_str, sizeof(sh_type_str)); + if (sh->op_failed) { if (sh_priv->loops_running == 0) { - gf_log (this->name, GF_LOG_TRACE, - "diff self-heal aborting on %s", - local->loc.path); + gf_log (this->name, GF_LOG_ERROR, + "diff %s self-heal aborting on %s", + sh_type_str, local->loc.path); sh_diff_private_cleanup (frame, this); local->self_heal.algo_abort_cbk (frame, this); @@ -969,14 +972,14 @@ sh_diff_loop_driver (call_frame_t *frame, xlator_t *this) if (sh_priv->offset >= sh->file_size) { if (sh_priv->loops_running == 0) { gf_log (this->name, GF_LOG_TRACE, - "diff self-heal completed on %s", - local->loc.path); + "diff %s self-heal completed on %s", + sh_type_str, local->loc.path); - gf_log (this->name, GF_LOG_DEBUG, - "diff self-heal on %s: %d blocks of %d were different (%.2f%%)", - local->loc.path, sh_priv->diff_blocks, - sh_priv->total_blocks, + gf_log (this->name, GF_LOG_NORMAL, + "diff %s self-heal on %s: %d blocks of %d were different (%.2f%%)", + sh_type_str, local->loc.path, + sh_priv->diff_blocks, sh_priv->total_blocks, ((sh_priv->diff_blocks * 1.0)/sh_priv->total_blocks) * 100); sh_diff_private_cleanup (frame, this); diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index d37c1b25d..e3e484aab 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -1501,6 +1501,7 @@ afr_self_heal_completion_cbk (call_frame_t *bgsh_frame, xlator_t *this) afr_private_t * priv = NULL; afr_local_t * local = NULL; afr_self_heal_t * sh = NULL; + char sh_type_str[256] = {0,}; priv = this->private; local = bgsh_frame->local; @@ -1512,8 +1513,11 @@ afr_self_heal_completion_cbk (call_frame_t *bgsh_frame, xlator_t *this) afr_set_split_brain (this, local->cont.lookup.inode, _gf_false); } - gf_log (this->name, GF_LOG_TRACE, - "background self-heal completed"); + afr_self_heal_type_str_get(sh, sh_type_str, + sizeof(sh_type_str)); + gf_log (this->name, GF_LOG_NORMAL, + "background %s self-heal completed on %s", sh_type_str, + local->loc.path); if (!sh->unwound) { sh->unwind (sh->orig_frame, this); diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index 56df1bd31..b795ea1d1 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -557,14 +557,14 @@ afr_lookup_collect_xattr (afr_local_t *local, xlator_t *this, static void -afr_lookup_self_heal_check (afr_local_t *local, struct iatt *buf, - struct iatt *lookup_buf) +afr_lookup_self_heal_check (xlator_t *this, afr_local_t *local, + struct iatt *buf, struct iatt *lookup_buf) { if (FILETYPE_DIFFERS (buf, lookup_buf)) { /* mismatching filetypes with same name */ - gf_log ("Replicate", GF_LOG_NORMAL, + gf_log (this->name, GF_LOG_NORMAL, "filetype differs for %s ", local->loc.path); local->govinda_gOvinda = 1; @@ -572,7 +572,7 @@ afr_lookup_self_heal_check (afr_local_t *local, struct iatt *buf, if (PERMISSION_DIFFERS (buf, lookup_buf)) { /* mismatching permissions */ - gf_log ("Replicate", GF_LOG_NORMAL, + gf_log (this->name, GF_LOG_NORMAL, "permissions differ for %s ", local->loc.path); local->self_heal.need_metadata_self_heal = _gf_true; } @@ -580,13 +580,13 @@ afr_lookup_self_heal_check (afr_local_t *local, struct iatt *buf, if (OWNERSHIP_DIFFERS (buf, lookup_buf)) { /* mismatching permissions */ local->self_heal.need_metadata_self_heal = _gf_true; - gf_log ("Replicate", GF_LOG_NORMAL, + gf_log (this->name, GF_LOG_NORMAL, "ownership differs for %s ", local->loc.path); } if (SIZE_DIFFERS (buf, lookup_buf) && IA_ISREG (buf->ia_type)) { - gf_log ("Replicate", GF_LOG_NORMAL, + gf_log (this->name, GF_LOG_NORMAL, "size differs for %s ", local->loc.path); local->self_heal.need_data_self_heal = _gf_true; } @@ -802,7 +802,7 @@ afr_fresh_lookup_cbk (call_frame_t *frame, void *cookie, } } else { - afr_lookup_self_heal_check (local, buf, lookup_buf); + afr_lookup_self_heal_check (this, local, buf, lookup_buf); if (child_index == local->read_child_index) { /* @@ -929,7 +929,7 @@ afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie, } } else { - afr_lookup_self_heal_check (local, buf, lookup_buf); + afr_lookup_self_heal_check (this, local, buf, lookup_buf); if (child_index == local->read_child_index) { -- cgit