Blob Blame History Raw
From 6f7a336da731a5113d8fdf9632f37ef181f04f9c Mon Sep 17 00:00:00 2001
From: Krutika Dhananjay <kdhananj@redhat.com>
Date: Fri, 28 Dec 2018 07:27:11 +0530
Subject: [PATCH 506/506] features/shard: Assign fop id during background
 deletion to prevent excessive logging

> Upstream: https://review.gluster.org/21946
> BUG: 1662368
> Change-Id: I0ca8d3b3bfbcd354b4a555eee520eb0479bcda35

... of the kind

"[2018-12-26 05:22:44.195019] E [MSGID: 133010]
[shard.c:2253:shard_common_lookup_shards_cbk] 0-volume1-shard: Lookup
on shard 785 failed. Base file gfid = cd938e64-bf06-476f-a5d4-d580a0d37416
[No such file or directory]"

shard_common_lookup_shards_cbk() has a specific check to ignore ENOENT error without
logging them during specific fops. But because background deletion is done in a new
frame (with local->fop being GF_FOP_NULL), the ENOENT check is skipped and the
absence of shards gets logged everytime.

To fix this, local->fop is initialized to GF_FOP_UNLINK during background deletion.

Change-Id: I0ca8d3b3bfbcd354b4a555eee520eb0479bcda35
BUG: 1662059
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/160436
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Xavi Hernandez <xhernandez@redhat.com>
---
 xlators/features/shard/src/shard.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xlators/features/shard/src/shard.c b/xlators/features/shard/src/shard.c
index 8aed1a386..19dd3e4ba 100644
--- a/xlators/features/shard/src/shard.c
+++ b/xlators/features/shard/src/shard.c
@@ -3530,6 +3530,7 @@ shard_delete_shards (void *opaque)
                 goto err;
         }
         cleanup_frame->local = local;
+        local->fop = GF_FOP_UNLINK;
 
         local->xattr_req = dict_new ();
         if (!local->xattr_req) {
-- 
2.20.1