Bug 1163760

Summary: when replace one brick on disperse volume, ls sometimes goes wrong
Product: [Community] GlusterFS Reporter: Xavi Hernandez <jahernan>
Component: disperseAssignee: Xavi Hernandez <jahernan>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs, gluster-bugs, jahernan, lidi, lmohanty
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: glusterfs-3.7.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1159498 Environment:
Last Closed: 2015-05-14 17:28:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1159498    

Description Xavi Hernandez 2014-11-13 12:53:46 UTC
+++ 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.

Comment 1 Anand Avati 2014-11-13 12:59:35 UTC
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)

Comment 2 Anand Avati 2014-11-15 18:00:56 UTC
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>

Comment 3 Niels de Vos 2015-05-14 17:28:27 UTC
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

Comment 4 Niels de Vos 2015-05-14 17:35:42 UTC
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

Comment 5 Niels de Vos 2015-05-14 17:38:05 UTC
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

Comment 6 Niels de Vos 2015-05-14 17:44:50 UTC
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