Bug 801394 - Symlinks are not getting synced on the slave with distribute striped volume.
Summary: Symlinks are not getting synced on the slave with distribute striped volume.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: geo-replication
Version: mainline
Hardware: x86_64
OS: Linux
urgent
urgent
Target Milestone: ---
Assignee: Venky Shankar
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 817967
TreeView+ depends on / blocked
 
Reported: 2012-03-08 12:41 UTC by Vijaykumar Koppad
Modified: 2014-08-25 00:49 UTC (History)
4 users (show)

Fixed In Version: glusterfs-3.4.0
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-24 18:04:31 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Vijaykumar Koppad 2012-03-08 12:41:55 UTC
Description of problem:
With distribute stripe volume as master , and plane directory as slave, 
When you create symlink , it won't get synced on slave. Plane distribute and distribute replicate volume  seems to work fine. Culprit might be stripe translator.


Version-Release number of selected component (if applicable):3.3 master
[9ae2f79879b295639b55411c5339eba04e627345]


How reproducible:always


Steps to Reproduce:
1.Start geo-rep session with distribute striped volume as master and plane directory as slave(can be on the same machine to make it simpler ). 
2.create a regular file, and symlink to that on master. 
3. It won't get synced on the slave.

Comment 1 shylesh 2012-03-09 06:42:10 UTC
The problem is with stripe. time stamps are not getting updated on a link file.


[root@RHEL6 mnt]# stat testfile
  File: `testfile' -> `/testfile'
  Size: 9               Blocks: 0          IO Block: 131072 symbolic link
Device: 15h/21d Inode: 10608527655181040018  Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-03-09 01:36:29.646159892 -0500
Modify: 2012-03-09 01:36:24.965139175 -0500
Change: 2012-03-09 01:36:24.965139175 -0500
[root@RHEL6 mnt]# touch testfile
[root@RHEL6 mnt]# stat testfile
  File: `testfile' -> `/testfile'
  Size: 9               Blocks: 0          IO Block: 131072 symbolic link
Device: 15h/21d Inode: 10608527655181040018  Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-03-09 01:36:29.646159892 -0500
Modify: 2012-03-09 01:36:24.965139175 -0500
Change: 2012-03-09 01:36:24.965139175 -0500

Comment 2 shylesh 2012-03-09 06:54:38 UTC
This is the default behavior of the  backend file system too. time stamp for a soft link will not be updated.

Comment 3 Venky Shankar 2012-03-14 06:09:55 UTC
Non-data files (links, fifo, device files) are only created in the first subvolume (stripe's first subvol). But while fetching xtime extended attribute the code winds to all subvol's are propogated the errno upwards on the xlator stack. Since the file is present only in the first subvol - we get a ENOENT from all but the first wind and hence send this errno upwards.

Fix will be to wind to the first child for non-data entities.

Comment 4 Anand Avati 2012-03-18 09:19:38 UTC
CHANGE: http://review.gluster.com/2948 (cluster/stripe: fix {set/get}xattr query for dirs/symlink) merged in master by Anand Avati (avati)


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