diff options
author | Ravishankar N <ravishankar@redhat.com> | 2015-03-18 10:30:12 +0530 |
---|---|---|
committer | Raghavendra Bhat <raghavendra@redhat.com> | 2015-03-25 01:57:01 -0700 |
commit | e4d8dc2e80f0683c69481c47875c01c8c3723814 (patch) | |
tree | a47553b210ee836a9618f3688294e968daa928f4 /tests/afr.rc | |
parent | 0799f5f6091c09361fe0bc394fe614ee55d67296 (diff) |
afr: remove stale index entries
Backport of http://review.gluster.org/9714
Problem:
During pre-op phase, the index xlator
1. Creates the entry inside .glusterfs/indices/xattrop
2. Winds the xattrop fop to posix to mark dirty/pending changelogs.
If the brick crashes after 1, the xattrop entry becomes stale and never
gets removed by shd during subsequent crawls because there is nothing to
heal (changelogs are zero).
Though the stale entry does not get displayed in the output of 'heal info'
command, it nevertheless stays there forever unless a new write tansaction
is performed on the file.
Fix:
During index self-heal if afr xattrs are found to be clean (indicated by
ret value of 2 on a call to afr_shd_selfheal(), send a dummy
post-op with all 0s for the xattr values, which makes the index xlator
to unlink the stale entry.
Change-Id: Iffb171e40490abd8d44df09ccc058b5da67baafe
BUG: 1203081
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-on: http://review.gluster.org/9920
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Diffstat (limited to 'tests/afr.rc')
-rw-r--r-- | tests/afr.rc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/tests/afr.rc b/tests/afr.rc index 938f9c07ab2..50067274d89 100644 --- a/tests/afr.rc +++ b/tests/afr.rc @@ -73,11 +73,9 @@ function is_file_heal_done { function count_sh_entries() { - val1=0 - for g in `ls $1/.glusterfs/indices/xattrop` - do - val1=$(( val1 + 1 )) - done - - echo $val1; + ls $1/.glusterfs/indices/xattrop | grep -v "xattrop-" | wc -l +} +function count_index_entries() +{ + ls $1/.glusterfs/indices/xattrop | wc -l } |