Bug 1479118

Summary: AFR entry self heal removes a directory's .glusterfs symlink.
Product: [Community] GlusterFS Reporter: Ravishankar N <ravishankar>
Component: posixAssignee: Ravishankar N <ravishankar>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.12CC: bugs
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.12.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1477169 Environment:
Last Closed: 2017-09-05 17:38:34 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: 1477169, 1491966    
Bug Blocks:    

Description Ravishankar N 2017-08-08 03:15:23 UTC
+++ This bug was initially created as a clone of Bug #1477169 +++

Description of problem:
$subject

How reproducible:
100%

Steps to Reproduce:
-Create 1x2 replica, fuse mount it
-mkdir fuse_mount/d1
-mkdir fuse_mount/d1/dir
-mkdir fuse_mount/d2
-kill one brick and rename the dir: `mv fuse_mount/d1/dir use_mount/d2`
-Bring all bricks up and trigger heal.

Actual results:
fuse_mount/d2/dir won't have any gfid symlink.

Additional info:
For replica 3 volume, the heal won't even complete, see the .t attached.

--- Additional comment from Worker Ant on 2017-08-01 08:06:07 EDT ---

REVIEW: https://review.gluster.org/17945 (posix: add sanity checks for removing the gfid symlink for directories) posted (#1) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Worker Ant on 2017-08-02 10:59:12 EDT ---

REVIEW: https://review.gluster.org/17945 (posix: add sanity checks for removing the gfid symlink for directories) posted (#2) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Worker Ant on 2017-08-04 11:54:05 EDT ---

COMMIT: https://review.gluster.org/17945 committed in master by Jeff Darcy (jeff.us) 
------
commit 42c057a6d1a03dd2825a278393acb15d52220c8d
Author: Ravishankar N <ravishankar>
Date:   Mon Jul 31 23:38:20 2017 +0530

    posix: add sanity checks for removing the gfid symlink for directories
    
    ...during mkdir and rmdir. Otherwise, during entry self-heal, the
    directory could be left out without a .glusterfs symlink causing fops like
    opendir, readdir to fail.  The only chance the missing symlink will be
    created is when a fresh lookup comes on it.
    
    Change-Id: I2e1cf1bce8962ea80187edd8f6d73e0a09cf9f8e
    BUG: 1477169
    Signed-off-by: Ravishankar N <ravishankar>
    Reviewed-on: https://review.gluster.org/17945
    Smoke: Gluster Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Raghavendra Bhat <raghavendra>

Comment 1 Worker Ant 2017-08-08 03:30:32 UTC
REVIEW: https://review.gluster.org/17991 (posix: add sanity checks for removing the gfid symlink for directories) posted (#1) for review on release-3.12 by Ravishankar N (ravishankar)

Comment 2 Worker Ant 2017-08-08 12:24:06 UTC
COMMIT: https://review.gluster.org/17991 committed in release-3.12 by Shyamsundar Ranganathan (srangana) 
------
commit 25ebb4d36fddb75f19c78e015aa8e9374964a5bb
Author: Ravishankar N <ravishankar>
Date:   Mon Jul 31 23:38:20 2017 +0530

    posix: add sanity checks for removing the gfid symlink for directories
    
    ...during mkdir and rmdir. Otherwise, during entry self-heal, the
    directory could be left out without a .glusterfs symlink causing fops like
    opendir, readdir to fail.  The only chance the missing symlink will be
    created is when a fresh lookup comes on it.
    
    > Reviewed-on: https://review.gluster.org/17945
    > Smoke: Gluster Build System <jenkins.org>
    > CentOS-regression: Gluster Build System <jenkins.org>
    > Reviewed-by: Raghavendra Bhat <raghavendra>
    (cherry picked from commit 42c057a6d1a03dd2825a278393acb15d52220c8d)
    
    Change-Id: I2e1cf1bce8962ea80187edd8f6d73e0a09cf9f8e
    BUG: 1479118
    Signed-off-by: Ravishankar N <ravishankar>
    Reviewed-on: https://review.gluster.org/17991
    Smoke: Gluster Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Shyamsundar Ranganathan <srangana>

Comment 3 Shyamsundar 2017-09-05 17:38:34 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.12.0, please open a new bug report.

glusterfs-3.12.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://lists.gluster.org/pipermail/announce/2017-September/000082.html
[2] https://www.gluster.org/pipermail/gluster-users/