On Mon, Apr 24, 2017 at 11:28 AM, Raghavendra Gowdappa <rgowd...@redhat.com> wrote:
> Its a known issue in DHT. Since DHT relies on some bits (S+T) in the stat > for identifying that a file is being migrated by a rebalance process, it > strips them off. But the problem is if the same bits are being used by > application (as in this case). The fix (if we can come up with one) might > require some time for validation as impact can be large. Possible solutions > are: > > 1. Pranith pointed out that rebalance process always holds an inodelk > during file migration. Probably we can leverage this information and decide > whether to strip the flags or not. > 2. There is also a linkto xattr stored on the data-file during migration. > Instead of unconditionally striping Phase1(2) flags, lookup/stat codepaths > can check for the presence of this xattr too and strip the flags only if it > is present. Note that with this solution application won't see the (S+T) > bits in stat during rebalance. > Innocent question. If we have a linkto-xattr and the lock, do we need anything more to detect that migration is in progress? I am wondering if we can remove the reliance on S+T bits. Worst case we will have to store the info on the xattr. > > regards, > Raghavendra. > > ----- Original Message ----- > > From: "Pranith Kumar Karampuri" <pkara...@redhat.com> > > To: "qingwei wei" <tcheng...@gmail.com> > > Cc: "Gluster Devel" <gluster-devel@gluster.org>, "Raghavendra Gowdappa" > <rgowd...@redhat.com>, "Nithya Balachandran" > > <nbala...@redhat.com> > > Sent: Monday, April 24, 2017 11:03:29 AM > > Subject: Re: [Gluster-devel] fstest for fuse mount gluster > > > > This is a bug in dht it seems like. It is stripping PHASE1 flags > > unconditionally. > > > > (gdb) > > 1212 DHT_STRIP_PHASE1_FLAGS (&local->stbuf); > > (gdb) p local->stbuf.ia_prot > > $18 = { > > suid = 1 '\001', > > sgid = 1 '\001', <------- > > sticky = 1 '\001', <------- > > ......... > > } > > (gdb) n > > 1213 dht_set_fixed_dir_stat (&local->postparent); > > (gdb) p local->stbuf.ia_prot > > $19 = { > > suid = 1 '\001', > > sgid = 0 '\000', <------- > > sticky = 0 '\000', <------- > > ... > > > > This is leading to 7777-->4777 > > > > Will update bug with same info > > > > > > On Thu, Apr 20, 2017 at 8:58 PM, qingwei wei <tcheng...@gmail.com> > wrote: > > > > > Hi, > > > > > > Posted this in gluster-user mailing list but got no response so far, > so i > > > post in gluster-devel. > > > > > > I found this test suite (https://github.com/Hnasar/pjdfstest) for me > to > > > test fuse mount gluster and there is some reported issue from the > test. One > > > of the error is as follow. > > > > > > When i chmod 7777 to a file in fuse mounted gluster volume. the return > > > stat value for the file is not 7777 instead of 4777. > > > > > > root@ubuntu16d:/mnt/g310mp# touch test > > > root@ubuntu16d:/mnt/g310mp# chmod 7777 test > > > root@ubuntu16d:/mnt/g310mp# stat test > > > File: 'test' > > > Size: 0 Blocks: 0 IO Block: 131072 regular > empty > > > file > > > Device: 29h/41d Inode: 9618589997017543511 Links: 1 > > > Access: (4777/-rwsrwxrwx) Uid: ( 0/ root) Gid: ( 0/ > root) > > > Access: 2017-11-30 14:21:23.374871207 +0800 > > > Modify: 2017-11-30 14:21:16.974871000 +0800 > > > Change: 2017-11-30 14:21:23.374871207 +0800 > > > Birth: - > > > > > > Performing this operation in normal ext4 system produce correct result. > > > > > > root@ubuntu16d:/mnt/g310mp# touch ~/testfile > > > root@ubuntu16d:/mnt/g310mp# chmod 7777 ~/testfile > > > root@ubuntu16d:/mnt/g310mp# stat ~/testfile > > > File: '/home/ubuntu/testfile' > > > Size: 0 Blocks: 0 IO Block: 4096 regular > empty > > > file > > > Device: fc00h/64512d Inode: 662649 Links: 1 > > > Access: (7777/-rwsrwsrwt) Uid: ( 0/ root) Gid: ( 0/ > root) > > > Access: 2017-11-30 14:23:00.518867795 +0800 > > > Modify: 2017-11-30 14:23:00.518867795 +0800 > > > Change: 2017-11-30 14:23:08.742867507 +0800 > > > Birth: - > > > > > > Besides 7777, 3777 also an issue. The stat return is 0777. > > > > > > My OS is Ubuntu 16.04 and my gluster version is 3.10.1 and the it is a > > > simple volume with default parameter. > > > > > > root@ubuntu16d:/mnt/g310mp# gluster volume info > > > > > > Volume Name: g310 > > > Type: Distribute > > > Volume ID: 114666c6-4884-436a-81a8-2deb3c0923ba > > > Status: Started > > > Snapshot Count: 0 > > > Number of Bricks: 1 > > > Transport-type: tcp > > > Bricks: > > > Brick1: 192.168.36.130:/mnt/g310brick > > > Options Reconfigured: > > > transport.address-family: inet > > > nfs.disable: on > > > > > > for me, i seldom use those mode (3777 & 7777) but i cannot say for sure > > > for others. So is this something i should be concerned about? > > > > > > Cw > > > > > > _______________________________________________ > > > Gluster-devel mailing list > > > Gluster-devel@gluster.org > > > http://lists.gluster.org/mailman/listinfo/gluster-devel > > > > > > > > > > > -- > > Pranith > > > -- Pranith
_______________________________________________ Gluster-devel mailing list Gluster-devel@gluster.org http://lists.gluster.org/mailman/listinfo/gluster-devel