887953
From 6f7a336da731a5113d8fdf9632f37ef181f04f9c Mon Sep 17 00:00:00 2001
887953
From: Krutika Dhananjay <kdhananj@redhat.com>
887953
Date: Fri, 28 Dec 2018 07:27:11 +0530
887953
Subject: [PATCH 506/506] features/shard: Assign fop id during background
887953
 deletion to prevent excessive logging
887953
887953
> Upstream: https://review.gluster.org/21946
887953
> BUG: 1662368
887953
> Change-Id: I0ca8d3b3bfbcd354b4a555eee520eb0479bcda35
887953
887953
... of the kind
887953
887953
"[2018-12-26 05:22:44.195019] E [MSGID: 133010]
887953
[shard.c:2253:shard_common_lookup_shards_cbk] 0-volume1-shard: Lookup
887953
on shard 785 failed. Base file gfid = cd938e64-bf06-476f-a5d4-d580a0d37416
887953
[No such file or directory]"
887953
887953
shard_common_lookup_shards_cbk() has a specific check to ignore ENOENT error without
887953
logging them during specific fops. But because background deletion is done in a new
887953
frame (with local->fop being GF_FOP_NULL), the ENOENT check is skipped and the
887953
absence of shards gets logged everytime.
887953
887953
To fix this, local->fop is initialized to GF_FOP_UNLINK during background deletion.
887953
887953
Change-Id: I0ca8d3b3bfbcd354b4a555eee520eb0479bcda35
887953
BUG: 1662059
887953
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
887953
Reviewed-on: https://code.engineering.redhat.com/gerrit/160436
887953
Tested-by: RHGS Build Bot <nigelb@redhat.com>
887953
Reviewed-by: Xavi Hernandez <xhernandez@redhat.com>
887953
---
887953
 xlators/features/shard/src/shard.c | 1 +
887953
 1 file changed, 1 insertion(+)
887953
887953
diff --git a/xlators/features/shard/src/shard.c b/xlators/features/shard/src/shard.c
887953
index 8aed1a386..19dd3e4ba 100644
887953
--- a/xlators/features/shard/src/shard.c
887953
+++ b/xlators/features/shard/src/shard.c
887953
@@ -3530,6 +3530,7 @@ shard_delete_shards (void *opaque)
887953
                 goto err;
887953
         }
887953
         cleanup_frame->local = local;
887953
+        local->fop = GF_FOP_UNLINK;
887953
 
887953
         local->xattr_req = dict_new ();
887953
         if (!local->xattr_req) {
887953
-- 
887953
2.20.1
887953