+++ This bug was initially created as a clone of Bug #1159498 +++ Steps to Reproduce: 1.gluster vol create test disperse 3 redundancy 1 10.10.21.20:/sdb 10.10.21.21:/sdb 10.10.21.22:/sdb force; 2.start the volume and mount it on /cluster2/test 3.cd /cluster2/test 4.mkdir a b c 5.touch a/1 b/2 c/3 6.gluster vol replace-brick test 10.10.21.22:/sdb 10.10.21.23:/sdb commit force 7.execute 'ls /cluster2/test/a' multiple times Actual results: sometimes 'ls /cluster2/test/a' can not list the file 1 --- Additional comment from Xavier Hernandez on 2014-11-04 13:39:51 CET --- Are you using 3.6.0beta3 ? if that's the case, this problem should already be solved in latest version (see bug #1149727) --- Additional comment from lidi on 2014-11-05 03:07:29 CET --- I use official 3.6.0 for this test. --- Additional comment from Xavier Hernandez on 2014-11-10 16:43:11 CET --- I've tried to reproduce this bug repeating your steps using version 3.6.0 and I'm not able to see this problem. There was a bug on 3.6.0beta3 that caused this problem, but it should be solved. Can you reproduce this problem with a 3.6.0 and a newly created volume using this version ? --- Additional comment from lidi on 2014-11-11 04:43:19 CET --- I got the source code form git://forge.gluster.org/glusterfs-core/glusterfs.git,and branch is release-3.6 I reformat all the disks, create a new volume and test again. Then I found I made a mistake on previous description. The step 7 should be : "ls a" multiple times;"cd a"; "ls" multiple times,then you'll see what I described.
REVIEW: http://review.gluster.org/9117 (ec: Avoid self-heal on directories on (f)stat calls) posted (#1) for review on master by Xavier Hernandez (xhernandez)
COMMIT: http://review.gluster.org/9117 committed in master by Vijay Bellur (vbellur) ------ commit 8c4ae34f8803f44f2f1e459883581a953bca42ec Author: Xavier Hernandez <xhernandez> Date: Thu Nov 13 13:55:36 2014 +0100 ec: Avoid self-heal on directories on (f)stat calls To avoid inconsistent directory listings, a full self-heal cannot happen on a directory until all its contents have been healed. This is controlled by a manual command using getfattr recursively and in post-order. While navigating the directories, sometimes an (f)stat fop can be sent. This fop caused a full self-heal of the directory. This patch makes that (f)stat only initiates a partial self-heal. Change-Id: I0a92bda8f4f9e43c1acbceab2d7926944a8a4d9a BUG: 1163760 Signed-off-by: Xavier Hernandez <xhernandez> Reviewed-on: http://review.gluster.org/9117 Reviewed-by: Dan Lambright <dlambrig> Tested-by: Gluster Build System <jenkins.com>
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.0, please open a new bug report. glusterfs-3.7.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10939 [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user