Bug 1286910

Summary: Tier: ec xattrs are set on a newly created file present in the non-ec hot tier
Product: [Community] GlusterFS Reporter: Nithya Balachandran <nbalacha>
Component: disperseAssignee: Pranith Kumar K <pkarampu>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.8rc2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1286927 1286985 (view as bug list) Environment:
Last Closed: 2016-06-16 13:47:31 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: 1286927, 1286985    

Description Nithya Balachandran 2015-12-01 05:25:59 UTC
Description of problem:
A newly created file on a tiered volume with distributed-disperse cold tier and dist-rep hot tier has EC xattrs set on it even though it exists on a hot tier.

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


How reproducible:
Every time

Steps to Reproduce:
1. Create a distributed-disperse (2x(4+2)) volume and attach a dist-rep hot tier to it
2. Start the volume and FUSE mount it.
3. Create a file on the mount point. Internally, tier first creates a linkto file on the cold tier and then creates the actual data file on the hot tier.
4. Check the xattrs set on the file on the hot tier bricks

Actual results:
The file has EC xattrs set on it

Expected results:
No EC xattrs should be present on files in non-EC subvols

Additional info:

Comment 1 Vijay Bellur 2015-12-01 06:12:10 UTC
REVIEW: http://review.gluster.org/12831 (cluster/ec: Create copy of dict for setting internal xattrs) posted (#1) for review on master by Pranith Kumar Karampuri (pkarampu)

Comment 2 Vijay Bellur 2015-12-01 17:21:21 UTC
COMMIT: http://review.gluster.org/12831 committed in master by Xavier Hernandez (xhernandez) 
------
commit b8b050c37004c942b8c565cc66a05e8fa999c1ba
Author: Pranith Kumar K <pkarampu>
Date:   Tue Dec 1 10:59:41 2015 +0530

    cluster/ec: Create copy of dict for setting internal xattrs
    
    Problem:
    Ec takes a ref of the request xdata and sets trusted.ec.version/algo etc xattrs
    as part of it. But this request xdata could be using same dictionary to do the
    operation on multiple subvolumes, due to which other subvolumes will have
    internal xattrs of ec in it and will be created on subvols where they are not
    supposed to appear.
    
    Fix:
    Take a copy of the request xdata/dict to prevent this from happening.
    
    Most of the debugging work and test script is contributed by Nitya.
    
    BUG: 1286910
    Change-Id: If146435dfb89656158dbed3862a3e9a0cda60581
    Signed-off-by: Pranith Kumar K <pkarampu>
    Reviewed-on: http://review.gluster.org/12831
    Tested-by: NetBSD Build System <jenkins.org>
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Xavier Hernandez <xhernandez>

Comment 3 Niels de Vos 2016-06-16 13:47:31 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.0, please open a new bug report.

glusterfs-3.8.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://blog.gluster.org/2016/06/glusterfs-3-8-released/
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user