Bug 1369187

Summary: fix bug in protocol/client lookup callback
Product: [Community] GlusterFS Reporter: Anuradha <atalur>
Component: protocolAssignee: Anuradha <atalur>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.8CC: bugs, smohan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.8.4 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1366284 Environment:
Last Closed: 2016-09-16 18:28:22 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: 1366284, 1369211    
Bug Blocks: 1334858    

Description Anuradha 2016-08-22 15:34:31 UTC
+++ This bug was initially created as a clone of Bug #1366284 +++

Description of problem:
in client3_3_lookup_cbk xdata is not passed to the upper xlators on failure. But there could be other xlators (like afr) that expect xdata to be present even on 
failure.
Fix it.

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Vijay Bellur on 2016-08-11 09:53:02 EDT ---

REVIEW: http://review.gluster.org/15120 (protocol/client: Unserialize xdata even if lookup fails) posted (#2) for review on master by Anuradha Talur (atalur)

--- Additional comment from Vijay Bellur on 2016-08-12 03:11:51 EDT ---

REVIEW: http://review.gluster.org/15120 (protocol/client: Unserialize xdata even if lookup fails) posted (#3) for review on master by Anuradha Talur (atalur)

--- Additional comment from Vijay Bellur on 2016-08-16 06:49:47 EDT ---

REVIEW: http://review.gluster.org/15178 (afr: set data and metadata readable to child up when no heal needed) posted (#1) for review on master by Anuradha Talur (atalur)

--- Additional comment from Vijay Bellur on 2016-08-17 06:26:08 EDT ---

COMMIT: http://review.gluster.org/15120 committed in master by Pranith Kumar Karampuri (pkarampu) 
------
commit 59186114f9545fda529368ee26c3cd3d88a80751
Author: Anuradha Talur <atalur>
Date:   Tue Aug 9 21:09:11 2016 +0530

    protocol/client: Unserialize xdata even if lookup fails
    
    Problem:
    AFR relies on xdata returned by lookup to determine if
    there are any files that need healing. This info is further
    used to optimize readdirp.
    
    In case of lookups with negative return value, client
    xlator was sending NULL xdata. Due to absence of xdata,
    AFR conservatively assumes that there are files that
    need healing, which is incorrect.
    
    Solution:
    Even in case of unsuccessful lookups, send the xdata received
    by protocol client so that higher xlators can get the info
    that they rely on.
    
    Change-Id: Id3a1023eb536180888eb2c0b39050000b76f7226
    BUG: 1366284
    Signed-off-by: Anuradha Talur <atalur>
    Reviewed-on: http://review.gluster.org/15120
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Poornima G <pgurusid>
    Tested-by: Poornima G <pgurusid>
    CentOS-regression: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Ashish Pandey <aspandey>
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>

Comment 1 Worker Ant 2016-08-22 15:45:16 UTC
REVIEW: http://review.gluster.org/15237 (protocol/client: Unserialize xdata even if lookup fails) posted (#1) for review on release-3.8 by Anuradha Talur (atalur)

Comment 2 Worker Ant 2016-08-22 20:18:34 UTC
COMMIT: http://review.gluster.org/15237 committed in release-3.8 by Pranith Kumar Karampuri (pkarampu) 
------
commit 72af868ba4a0ff7e143adaec78168aaccda473ef
Author: Anuradha Talur <atalur>
Date:   Tue Aug 9 21:09:11 2016 +0530

    protocol/client: Unserialize xdata even if lookup fails
    
    Problem:
    AFR relies on xdata returned by lookup to determine if
    there are any files that need healing. This info is further
    used to optimize readdirp.
    
    In case of lookups with negative return value, client
    xlator was sending NULL xdata. Due to absence of xdata,
    AFR conservatively assumes that there are files that
    need healing, which is incorrect.
    
    Solution:
    Even in case of unsuccessful lookups, send the xdata received
    by protocol client so that higher xlators can get the info
    that they rely on.
    
            >Change-Id: Id3a1023eb536180888eb2c0b39050000b76f7226
            >BUG: 1366284
            >Signed-off-by: Anuradha Talur <atalur>
            >Reviewed-on: http://review.gluster.org/15120
            >Smoke: Gluster Build System <jenkins.org>
            >Reviewed-by: Poornima G <pgurusid>
            >Tested-by: Poornima G <pgurusid>
            >CentOS-regression: Gluster Build System <jenkins.org>
            >NetBSD-regression: NetBSD Build System <jenkins.org>
            >Reviewed-by: Ashish Pandey <aspandey>
            >Reviewed-by: Pranith Kumar Karampuri <pkarampu>
            >Signed-off-by: Anuradha Talur <atalur>
    
    Change-Id: Id3a1023eb536180888eb2c0b39050000b76f7226
    BUG: 1369187
    Signed-off-by: Anuradha Talur <atalur>
    Reviewed-on: http://review.gluster.org/15237
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>

Comment 3 Niels de Vos 2016-09-12 05:39:50 UTC
All 3.8.x bugs are now reported against version 3.8 (without .x). For more information, see http://www.gluster.org/pipermail/gluster-devel/2016-September/050859.html

Comment 4 Niels de Vos 2016-09-16 18:28:22 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.8.4, please open a new bug report.

glusterfs-3.8.4 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] https://www.gluster.org/pipermail/announce/2016-September/000060.html
[2] https://www.gluster.org/pipermail/gluster-users/