diff options
author | Krutika Dhananjay <kdhananj@redhat.com> | 2015-08-05 16:58:01 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-08-05 19:37:07 -0700 |
commit | 611b2545b012d1c5d0700af6bc1a182f7aa2343a (patch) | |
tree | 6452179e095e0ce15cdcd8ec11d7876ba9f2e670 | |
parent | 98637903bb87812d60ef47bb1bd735503133d53e (diff) |
features/shard: Fix excessive logging in readdir(p) callback
On enabling features.shard on a volume which already has few files,
performing operations on the mount was causing excessive logging of
messages of the following kind:
[2015-08-05 10:57:48.743352] E [shard.c:232:shard_modify_size_and_block_count]
2-dis-shard: Failed to get trusted.glusterfs.shard.file-size for
0b2bd401-c438-4d57-8ae5-8d26105d3396
Turns out this is coming from shard_readdir_cbk() where the shard
translator unconditionally looks for the xattr
'trusted.glusterfs.shard.file-size' in every entry's rsp dict and
logs this error on not finding it. But files that are not sharded
(i.e., the ones that were created before sharding was enabled on the volume)
will not (and should not) have this xattr associated with them.
So these logs are misleading and must be suppressed in readdir(p).
Change-Id: I8d268b4f90a8bf744c7851f1984f5a1b6968fb6a
BUG: 1250441
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: http://review.gluster.org/11843
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
-rw-r--r-- | xlators/features/shard/src/shard.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/xlators/features/shard/src/shard.c b/xlators/features/shard/src/shard.c index 4284ad679ef..8c9f9f8978e 100644 --- a/xlators/features/shard/src/shard.c +++ b/xlators/features/shard/src/shard.c @@ -3400,7 +3400,9 @@ shard_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, if (IA_ISDIR (entry->d_stat.ia_type)) continue; - shard_modify_size_and_block_count (&entry->d_stat, entry->dict); + if (dict_get (entry->dict, GF_XATTR_SHARD_FILE_SIZE)) + shard_modify_size_and_block_count (&entry->d_stat, + entry->dict); } local->op_ret = op_ret; |