[Gluster-devel] A problem when I renamed a file in a Distributed-Disperse volume.

Pranith Kumar Karampuri pkarampu at redhat.com
Mon Jul 6 15:22:38 UTC 2015



On 07/04/2015 05:31 PM, christ1016 at sina.com wrote:
> Hi, everyone.
>
> I am louis, and I found a problem when I rename a file which is in a 
> Distributed-Disperse volume. And I doubt this is a glusterfs bug. The 
> problem can be described like below:
>
> 1) There is a Distributed-Disperse volume called yxy in my cluster. 
> The volume info as below:
>
>            Volume Name: yxy
>    Type: Distributed-Disperse
>    Volume ID: 6e00423e-f8b8-4a76-9ab2-885f67b0eefd
>                   Status: Started
>                   Number of Bricks: 2 x (2 + 1) = 6
>                   Transport-type: tcp
>                   Bricks:
>                   Brick1: 191.168.45.106:/NAS/nasdevice51
>                   Brick2: 191.168.45.106:/NAS/nasdevice52
>                   Brick3: 191.168.45.106:/NAS/nasdevice53
>                   Brick4: 191.168.45.106:/NAS/nasdevice54
>                   Brick5: 191.168.45.106:/NAS/nasdevice55
>                   Brick6: 191.168.45.106:/NAS/nasdevice56
>
>      2) Mount the Distributed-Disperse volume (yxy) to the dir 
> /cluster/volume4.
>
>          mount -t glusterfs 191.168.45.106:/yxy /cluster/volume4
>
>      3) Create a ftp share dir called yxy-share in the mount point 
> (/cluster/volume4), and the ftp share dir is assigned to ftp user 
> "louis" with "rw" rights.
>
>
>      4) Put a file named testfile.old to ftp share dir(yxy-sahre) of 
> the mountpoint (/cluster/volume4) from the Windows(7) using the ftp 
> access mode.
>
>         # cd /cluster/volume4/yxy-share
>         # ll -a
>         total 1
>         drwxrwx--- 2 root  NASGROUP   0 Jul  3 15:19 .
>         drwxrwxrwx 4 root  NASGROUP  89 Jul  3 15:09 ..
>         -rw-rw---- 1 louis NASGROUP 557 Jul  3 15:19 testfile.old
>
>         From the "ll -a" infos, we can see the testfile.old's uid is 
> "louis" and the gid is "NASGROUP".
>
>         And we can find the testfile.old in the share dir "yxy-share" 
> of the brick "191.168.45.106:/NAS/nasdevice51" , info as below:
>
>         # cd /NAS/nasdevice51/yxy-share
>         # ll -a
>         total 2
>         drwxrwx--- 2 root  NASGROUP  25 Jul  3 15:19 .
>         drwxrwxrwx 4 root  NASGROUP  35 Jul  3 15:09 ..
>         -rw-rw---- 2 louis NASGROUP 512 Jul  3 15:19 testfile.old
>
>         we can see, the "ll -a" infos of the /NAS/nasdevice51/yxyshare 
> are the same as the infos of the mountpoint.
>
>      5) Now, we renamed the "testfile.old" to "testfile.new.name" in 
> the share dir of the mountpoint (/cluster/volume4/yxy-share) from the 
> Windows(7) using the ftp access mode.
>
>         # cd /cluster/volume4/yxy-share
>         # ll -a
>         total 1
>         drwxrwx--- 2 root  NASGROUP   0 Jul  3 15:37 .
>         drwxrwxrwx 4 root  NASGROUP  70 Jul  3 15:36 ..
>         -rw-rw---- 1 louis NASGROUP 557 Jul  3 15:36 testfile.new.name 
>      -----> the "testfile.old" has been renamed to the 
> "testfile.new.name", but the uid  and gid are thesame.
>
>         And we can find the same info in the brick 
> 191.168.45.106:/NAS/nasdevice51
>
>         # cd /NAS/nasdevice51/yxy-share
>         # ll -a
>         total 2
>         drwxrwx--- 2 root  NASGROUP  25 Jul  3 15:37 .
>         drwxrwxrwx 4 root  NASGROUP  35 Jul  3 15:09 ..
>         -rw-rw---- 2 louis NASGROUP 512 Jul  3 15:36 testfile.new.name 
>     -----> the "testfile.old" has been renamed to the 
> "testfile.new.name", but the uid and gid are thesame.
>
>
>      6) After renamed the "testfile.old" to "testfile.new.name", the 
> new named file(testfile.new.name) willed be hashed to the other 
> Disperse called "yxy-     disperse-1", that is,  the 
> "testfile.new.name" will be hashed to the 3 bricks of the other 
> disperse (yxy-disperse-1), but the hashed file called                 
> "testfile.new.name" will linkto the file in the bricks of disperse0 
> (yxy-disperse-0).
>
>         # cd /NAS/nasdevice54/yxy-share   or cd 
> /NAS/nasdevice55/yxy-share  or cd /NAS/nasdevice56/yxy-share
>         # ll -a
>         total 0
>         drwxrwx--- 2 root NASGROUP 30 Jul  3 15:45 .
>         drwxrwxrwx 4 root NASGROUP 35 Jul  3 15:36 ..
>         ---------T 2root root      0 Jul  3 15:45 testfile.new.name   
>      ----> the uid of the hashed file "testfile.new.name" become the 
> "root" not the "louis", and the gid become"root" not the "NASGROUP". 
> Is this a problem???
>
>         and the log is printed below:
>
>         [2015-06-26 17:53:41.649837] W [MSGID: 0] 
> [ec-common.c:1110:ec_get_size_version_set] 0-ec_test-disperse-1: 
> Failed to get size and version                                         
>     (error 2)
>
>
>         [2015-06-26 17:53:41.649884] E [MSGID: 109031] 
> [dht-linkfile.c:305:dht_linkfile_setattr_cbk] 0-ec_test-dht: Failed to 
> set attr uid/gid on /yxy-  share/testfile.old 
> :<gfid:00000000-0000-0000-0000-000000000000>  [No such file or directory]
>
>
>         Actually, I take the same operation to the Distribute volume, 
> the uid and gid attrs of hashed file in the other disperse of the 
> Distribute volume are the           same as renamed before, and no 
> "failed" log printed.
>
>         So I doubt this may be a bug of the Distribute-Disperse(dht-ec).
Is this consistently re-creatable for you? which build are you using? I 
tried this test on master branch and I see that the permissions are 
retained. Could you give volume info output as well?

Pranith
>
>
>      I am very appreciate your help, and thanks very much.
>
>     Best Regards.
>
>
>                                             Louis
>                                          2015/7/4
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20150706/16d3bcc8/attachment-0001.html>


More information about the Gluster-devel mailing list