Bug 1409730 - [ganesha+ec]: Contents of original file are not seen when hardlink is created
Summary: [ganesha+ec]: Contents of original file are not seen when hardlink is created
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: disperse
Version: mainline
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: bugs@gluster.org
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1408836 1412916 1413057
TreeView+ depends on / blocked
 
Reported: 2017-01-03 07:33 UTC by Pranith Kumar K
Modified: 2017-03-06 17:41 UTC (History)
16 users (show)

Fixed In Version: glusterfs-3.10.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1408836
: 1412916 1413057 (view as bug list)
Environment:
Last Closed: 2017-03-06 17:41:22 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)

Comment 1 Pranith Kumar K 2017-01-03 07:34:46 UTC
Steps to Reproduce:
1. Create ganesha cluster and create 2*(4+2) EC volume.
2. Enable nfs-ganesha on the volume with mdcache settings.
3. Mount the volume.
4. Create a file and write contents to it.
5. Create hard link to that file.
6. Read the contents of the file.

Actual results:
Contents of original file are not seen when hardlink is created

Expected results:
Contents should not get removed

Additional info:

[root@dhcp47-49 ec_test]# echo "testfile" > test1
[root@dhcp47-49 ec_test]# cat test1
testfile
[root@dhcp47-49 ec_test]# ls -lhrtia test1
10548474259765385418 -rw-r--r--. 1 root root 9 Dec 27 20:38 test1
[root@dhcp47-49 ec_test]# ln test1 test1_hlink
[root@dhcp47-49 ec_test]# ls -lhrtia test1 test1_hlink
10548474259765385418 -rw-r--r--. 2 root root 0 Dec 27 20:38 test1_hlink
10548474259765385418 -rw-r--r--. 2 root root 0 Dec 27 20:38 test1
[root@dhcp47-49 ec_test]# cat test1
[root@dhcp47-49 ec_test]# cat test1_hlink
[root@dhcp47-49 ec_test]# 
[root@dhcp47-49 ec_test]# 
[root@dhcp47-49 ec_test]# cat test1
[root@dhcp47-49 ec_test]# cat test1_hlink
[root@dhcp47-49 ec_test]# cat test1
[root@dhcp47-49 ec_test]# cat test1

Comment 2 Pranith Kumar K 2017-01-04 08:10:24 UTC
Works as expected with the fix:

root@dhcp35-190 - ~ 
13:34:05 :) ⚡ glusterd && gluster v create ec2 disperse-data 4 redundancy 2 localhost.localdomain:/home/gfs/ec_{0..5} force && gluster v start ec2 && mount -t glusterfs localhost.localdomain:/ec2 /mnt/ec2
volume create: ec2: success: please start the volume to access data
cd ^[.
volume start: ec2: success

root@dhcp35-190 - ~ 
13:34:49 :) ⚡ cd /mnt/ec2

root@dhcp35-190 - /mnt/ec2 
13:36:46 :( ⚡ echo abc > a && ln a c && cat c
abc

Comment 3 Worker Ant 2017-01-04 08:11:14 UTC
REVIEW: http://review.gluster.org/16320 (cluster/ec: Do lookup on an existing file in link) posted (#1) for review on master by Pranith Kumar Karampuri (pkarampu@redhat.com)

Comment 4 Worker Ant 2017-01-06 05:19:25 UTC
COMMIT: http://review.gluster.org/16320 committed in master by Pranith Kumar Karampuri (pkarampu@redhat.com) 
------
commit 395c55483724912821929ff2a793e99fd7bf4e71
Author: Pranith Kumar K <pkarampu@redhat.com>
Date:   Wed Jan 4 13:37:23 2017 +0530

    cluster/ec: Do lookup on an existing file in link
    
    Problem:
    In link fop lookup is happening on the new fop which doesn't exist so the iatt
    ec serves parent xlators has size as zero which leads to 'cat' giving empty output
    
    Fix:
    Change code so that lookup happens on the existing link instead.
    
    BUG: 1409730
    Change-Id: I70eb02fe0633e61d1d110575589cc2dbe5235d76
    Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
    Reviewed-on: http://review.gluster.org/16320
    Smoke: Gluster Build System <jenkins@build.gluster.org>
    Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>
    Tested-by: Xavier Hernandez <xhernandez@datalab.es>
    CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
    NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>

Comment 5 Shyamsundar 2017-03-06 17:41: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.10.0, please open a new bug report.

glusterfs-3.10.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/gluster-users/2017-February/030119.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.