Bug 1230242

Summary: `ls' on a directory which has files with mismatching gfid's does not list anything
Product: [Community] GlusterFS Reporter: Ravishankar N <ravishankar>
Component: replicateAssignee: Ravishankar N <ravishankar>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.6.3CC: bugs, gluster-bugs, rabhat, ravishankar, rkavunga, ssampat
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: glusterfs-3.6.4beta2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1221481 Environment:
Last Closed: 2015-11-17 12:15:25 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: 1218863, 1221481, 1223751    
Bug Blocks: 1186580, 1216965    

Description Ravishankar N 2015-06-10 13:29:57 UTC
+++ This bug was initially created as a clone of Bug #1221481 +++

+++ This bug was initially created as a clone of Bug #1218863 +++

Description of problem:
------------------------

Running `ls' a directory that has some files with mismatching gfid's on both bricks of a replica pair, does not list anything. All entries in the directory should be listed regardless of them being in split-brain.

Version-Release number of selected component (if applicable):
---------------------------------------------------------------
glusterfs-3.7.0alpha0-0.17.gited96153.el6.x86_64

How reproducible:
------------------
Always

Steps to Reproduce:
-------------------
1. On a distributed replicate volume (with self-heal-daemon turned off), bring down one brick in each replica pair and create a file on the mount point.
2. Bring all bricks up and then kill the other brick in each replica pair (different from the one that was brought down earlier)
3. Create a file with the same name on the mount point.
4. Run `ls' on the mount point.

Actual results:
----------------

`ls' does not list any entries.

Expected results:
------------------

`ls' should list all entries in the directory.

Additional info:

--- Additional comment from Anand Avati on 2015-05-14 03:04:29 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#1) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Ravishankar N on 2015-05-14 03:07:28 EDT ---

Changed the state to MODIFIED by mistake. Moving it back to POST.

--- Additional comment from Anand Avati on 2015-05-14 04:53:12 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#2) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Anand Avati on 2015-05-14 12:33:05 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#3) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Anand Avati on 2015-05-16 00:07:22 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#4) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Anand Avati on 2015-05-17 06:09:57 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#5) for review on master by Vijay Bellur (vbellur)

--- Additional comment from Anand Avati on 2015-05-19 04:57:53 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#6) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Anand Avati on 2015-05-19 07:30:59 EDT ---

REVIEW: http://review.gluster.org/10776 (afr: allow readdir to proceed for directories in split-brain) posted (#7) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Anand Avati on 2015-05-28 05:20:38 EDT ---

COMMIT: http://review.gluster.org/10776 committed in master by Pranith Kumar Karampuri (pkarampu) 
------
commit 49b428433a03fcf709fdc8c08603b4cf02198e0a
Author: Ravishankar N <ravishankar>
Date:   Thu May 14 03:21:10 2015 +0530

    afr: allow readdir to proceed for directories in split-brain
    
    Problem:
    afr_read_txn() bails out if read_subvol==-1. This meant that for
    directories that were in entry split-brain, FOPS like readdir, access,
    stat etc were not allowed.
    
    Fix:
    Except for getxattr, all other FOPS are wound on the first up child
    of afr.
    
    Change-Id: Iacec8fbb1e75c4d2094baa304f62331c81a6f670
    BUG: 1221481
    Signed-off-by: Ravishankar N <ravishankar>
    Reviewed-on: http://review.gluster.org/10776
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>
    Reviewed-by: Anuradha Talur <atalur>
    Tested-by: NetBSD Build System

Comment 1 Ravishankar N 2015-06-10 13:33:14 UTC
http://review.gluster.org/#/c/11162/

Comment 2 Anand Avati 2015-06-15 16:29:02 UTC
COMMIT: http://review.gluster.org/11162 committed in release-3.6 by Raghavendra Bhat (raghavendra) 
------
commit 83778a592f75ef18ce5e22e14adc9bf118705a17
Author: Ravishankar N <ravishankar>
Date:   Wed Jun 10 18:34:52 2015 +0530

    afr: allow readdir to proceed for directories in split-brain
    
    Problem:
    afr_read_txn() bails out if read_subvol==-1. This meant that for
    directories that were in entry split-brain, FOPS like readdir, access,
    stat etc were not allowed.
    
    Fix:
    Except for getxattr, all other FOPS are wound on the first up child
    of afr.
    
    Change-Id: Iacec8fbb1e75c4d2094baa304f62331c81a6f670
    BUG: 1230242
    Signed-off-by: Ravishankar N <ravishankar>
    Reviewed-on: http://review.gluster.org/10776
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>
    Reviewed-by: Anuradha Talur <atalur>
    (cherry picked from commit 49b428433a03fcf709fdc8c08603b4cf02198e0a)
    Signed-off-by: Ravishankar N <ravishankar>
    Reviewed-on: http://review.gluster.org/11162
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Raghavendra Bhat <raghavendra>