summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrishnan Parthasarathi <kparthas@redhat.com>2012-08-17 14:19:39 +0530
committerVijay Bellur <vbellur@redhat.com>2012-08-17 02:22:02 -0700
commit753f8c13245220c4b9ec6364a5e644274a36b1d6 (patch)
tree0b2d61200605ef15a25f42b30f75460e8e2beb27
parent1df75bc835a75f17fa0fcd3722ef68f05f5f3200 (diff)
afr: Avoid excessive logging in self-heal.v3.3.1qa1
- (Excessive) Logging has been very useful as 'bread-crumbs' in many a root-cause analyses. This patch aims at avoiding logging when the information could be reconstructed using the xattrs, statedump, and/or "volume heal" CLI commands. Change-Id: I8f646cbee44e98495ea6963f9dfcae95375c8900 BUG: 844804 Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: http://review.gluster.com/3827 Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r--xlators/cluster/afr/src/afr-common.c12
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-algorithm.c6
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-common.c14
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-data.c4
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-metadata.c6
-rw-r--r--xlators/cluster/afr/src/afr-self-heald.c4
6 files changed, 26 insertions, 20 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c
index f416ed9..d3e5182 100644
--- a/xlators/cluster/afr/src/afr-common.c
+++ b/xlators/cluster/afr/src/afr-common.c
@@ -1171,7 +1171,7 @@ afr_detect_self_heal_by_iatt (afr_local_t *local, xlator_t *this,
{
if (PERMISSION_DIFFERS (buf, lookup_buf)) {
/* mismatching permissions */
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"permissions differ for %s ", local->loc.path);
local->self_heal.do_metadata_self_heal = _gf_true;
}
@@ -1179,13 +1179,13 @@ afr_detect_self_heal_by_iatt (afr_local_t *local, xlator_t *this,
if (OWNERSHIP_DIFFERS (buf, lookup_buf)) {
/* mismatching permissions */
local->self_heal.do_metadata_self_heal = _gf_true;
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"ownership differs for %s ", local->loc.path);
}
if (SIZE_DIFFERS (buf, lookup_buf)
&& IA_ISREG (buf->ia_type)) {
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"size differs for %s ", local->loc.path);
local->self_heal.do_data_self_heal = _gf_true;
}
@@ -1210,7 +1210,7 @@ afr_detect_self_heal_by_lookup_status (afr_local_t *local, xlator_t *this,
local->self_heal.do_entry_self_heal = _gf_true;
local->self_heal.do_gfid_self_heal = _gf_true;
local->self_heal.do_missing_entry_self_heal = _gf_true;
- gf_log(this->name, GF_LOG_INFO,
+ gf_log(this->name, GF_LOG_DEBUG,
"entries are missing in lookup of %s.",
local->loc.path);
//If all self-heals are needed no need to check for other rules
@@ -1221,7 +1221,7 @@ afr_detect_self_heal_by_lookup_status (afr_local_t *local, xlator_t *this,
IA_ISREG (local->cont.lookup.inode->ia_type)) {
local->self_heal.do_data_self_heal = _gf_true;
local->self_heal.do_metadata_self_heal = _gf_true;
- gf_log (this->name, GF_LOG_WARNING,
+ gf_log (this->name, GF_LOG_DEBUG,
"split brain detected during lookup of %s.",
local->loc.path);
}
@@ -1335,7 +1335,7 @@ afr_launch_self_heal (call_frame_t *frame, xlator_t *this, inode_t *inode,
if (background)
bg = "background";
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"%s %s self-heal triggered. path: %s, reason: %s", bg,
sh_type_str, local->loc.path, reason);
diff --git a/xlators/cluster/afr/src/afr-self-heal-algorithm.c b/xlators/cluster/afr/src/afr-self-heal-algorithm.c
index 18edca8..30e117b 100644
--- a/xlators/cluster/afr/src/afr-self-heal-algorithm.c
+++ b/xlators/cluster/afr/src/afr-self-heal-algorithm.c
@@ -104,7 +104,7 @@ sh_loop_driver_done (call_frame_t *sh_frame, xlator_t *this,
if (sh->op_failed) {
GF_ASSERT (!last_loop_frame);
//loop_finish should have happened and the old_loop should be NULL
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"self-heal aborting on %s",
local->loc.path);
@@ -112,10 +112,10 @@ sh_loop_driver_done (call_frame_t *sh_frame, xlator_t *this,
} else {
GF_ASSERT (last_loop_frame);
if (diff_blocks == total_blocks) {
- gf_log (this->name, GF_LOG_INFO, "full self-heal "
+ gf_log (this->name, GF_LOG_DEBUG, "full self-heal "
"completed on %s",local->loc.path);
} else {
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"diff self-heal on %s: completed. "
"(%d blocks of %d were different (%.2f%%))",
local->loc.path, diff_blocks, total_blocks,
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c
index be8809a..e86f82f 100644
--- a/xlators/cluster/afr/src/afr-self-heal-common.c
+++ b/xlators/cluster/afr/src/afr-self-heal-common.c
@@ -989,7 +989,7 @@ afr_sh_missing_entries_done (call_frame_t *frame, xlator_t *this)
afr_sh_reset (frame, this);
if (local->govinda_gOvinda) {
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"split brain found, aborting selfheal of %s",
local->loc.path);
sh->op_failed = 1;
@@ -1081,7 +1081,7 @@ afr_sh_common_lookup_resp_handler (call_frame_t *frame, void *cookie,
sh->success_count++;
sh->xattr[child_index] = dict_ref (xattr);
} else {
- gf_log (this->name, GF_LOG_ERROR, "path %s on subvolume"
+ gf_log (this->name, GF_LOG_DEBUG, "path %s on subvolume"
" %s => -1 (%s)", loc->path,
priv->children[child_index]->name,
strerror (op_errno));
@@ -2152,11 +2152,17 @@ afr_self_heal_completion_cbk (call_frame_t *bgsh_frame, xlator_t *this)
afr_self_heal_type_str_get (sh, sh_type_str,
sizeof(sh_type_str));
if (sh->op_failed) {
- gf_log (this->name, GF_LOG_ERROR, "background %s self-heal "
+ gf_loglevel_t loglevel = GF_LOG_ERROR;
+ if (priv->shd.iamshd)
+ loglevel = GF_LOG_DEBUG;
+
+ gf_log (this->name, loglevel, "background %s self-heal "
"failed on %s", sh_type_str, local->loc.path);
+
} else {
- gf_log (this->name, GF_LOG_INFO, "background %s self-heal "
+ gf_log (this->name, GF_LOG_DEBUG, "background %s self-heal "
"completed on %s", sh_type_str, local->loc.path);
+
}
FRAME_SU_UNDO (bgsh_frame, afr_local_t);
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c
index 72bf8d4..423e1c8 100644
--- a/xlators/cluster/afr/src/afr-self-heal-data.c
+++ b/xlators/cluster/afr/src/afr-self-heal-data.c
@@ -91,7 +91,7 @@ afr_sh_data_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
LOCK (&frame->lock);
{
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_ERROR,
"flush failed on %s on subvolume %s: %s",
local->loc.path, priv->children[child_index]->name,
strerror (op_errno));
@@ -826,7 +826,7 @@ afr_lookup_select_read_child_by_txn_type (xlator_t *this, afr_local_t *local,
sources, success_children, txn_type,
&subvol_status, _gf_false);
if (subvol_status & SPLIT_BRAIN) {
- gf_log (this->name, GF_LOG_WARNING, "%s: Possible split-brain",
+ gf_log (this->name, GF_LOG_DEBUG, "%s: Possible split-brain",
local->loc.path);
switch (txn_type) {
case AFR_DATA_TRANSACTION:
diff --git a/xlators/cluster/afr/src/afr-self-heal-metadata.c b/xlators/cluster/afr/src/afr-self-heal-metadata.c
index 6c3989e..7611088 100644
--- a/xlators/cluster/afr/src/afr-self-heal-metadata.c
+++ b/xlators/cluster/afr/src/afr-self-heal-metadata.c
@@ -51,7 +51,7 @@ afr_sh_metadata_done (call_frame_t *frame, xlator_t *this)
afr_sh_reset (frame, this);
if (sh->mdata_spb) {
- gf_log (this->name, GF_LOG_INFO,
+ gf_log (this->name, GF_LOG_DEBUG,
"split-brain detected, aborting selfheal of %s",
local->loc.path);
sh->op_failed = 1;
@@ -535,9 +535,9 @@ afr_sh_metadata_post_nonblocking_inodelk_cbk (call_frame_t *frame,
int_lock = &local->internal_lock;
if (int_lock->lock_op_ret < 0) {
- gf_log (this->name, GF_LOG_ERROR, "Non Blocking metadata "
+ gf_log (this->name, GF_LOG_DEBUG, "Non Blocking metadata "
"inodelks failed for %s.", local->loc.path);
- gf_log (this->name, GF_LOG_ERROR, "Metadata self-heal "
+ gf_log (this->name, GF_LOG_DEBUG, "Metadata self-heal "
"failed for %s.", local->loc.path);
afr_sh_metadata_done (frame, this);
} else {
diff --git a/xlators/cluster/afr/src/afr-self-heald.c b/xlators/cluster/afr/src/afr-self-heald.c
index 3a62957..f425572 100644
--- a/xlators/cluster/afr/src/afr-self-heald.c
+++ b/xlators/cluster/afr/src/afr-self-heald.c
@@ -278,10 +278,10 @@ _remove_stale_index (xlator_t *this, xlator_t *readdir_xl,
ret = _build_index_loc (this, &index_loc, fname, parent);
if (ret)
goto out;
- gf_log (this->name, GF_LOG_INFO, "Removing stale index "
+ gf_log (this->name, GF_LOG_DEBUG, "Removing stale index "
"for %s on %s", index_loc.name, readdir_xl->name);
ret = syncop_unlink (readdir_xl, &index_loc);
- if (ret) {
+ if (ret && (errno != ENOENT)) {
gf_log (this->name, GF_LOG_ERROR, "%s: Failed to remove"
" index on %s - %s", index_loc.name,
readdir_xl->name, strerror (errno));