diff options
author | Nithya Balachandran <nbalacha@redhat.com> | 2015-08-27 13:10:18 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-08-31 00:27:40 -0700 |
commit | b9c730f3960efd454c8363ee39dc144e4c0dc835 (patch) | |
tree | e8e1895e404f8e47da964d56f2126daefe143885 /tests/bugs/distribute | |
parent | beb7abe8762ad73de104f0707949a09af847464d (diff) |
cluster/dht: Don't set posix acls on linkto files
Posix acls on a linkto file change the file's permission
bits and cause DHT to treat it as a non-linkto file.This
happens on the migration failure of a file on which posix
acls were set.
The fix prevents posix acls from being set on a linkto
file and copies them across only after a file has
been successfully migrated.
Change-Id: Iccf7ff6fba49fe05d691d9b83bf76a240848b212
BUG: 1247563
Signed-off-by: Nithya Balachandran <nbalacha@redhat.com>
Signed-off-by: N Balachandran <nbalacha@redhat.com>
Reviewed-on: http://review.gluster.org/12025
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'tests/bugs/distribute')
-rw-r--r-- | tests/bugs/distribute/bug-1247563.t | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/bugs/distribute/bug-1247563.t b/tests/bugs/distribute/bug-1247563.t new file mode 100644 index 00000000000..f7f92582e04 --- /dev/null +++ b/tests/bugs/distribute/bug-1247563.t @@ -0,0 +1,57 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +is_sticky_set () { + echo $1 + if [ -k $1 ]; + then + echo "yes" + else + echo "no" + fi +} + +cleanup; + +#Basic checks +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info + +#Create a distributed volume +TEST $CLI volume create $V0 $H0:$B0/${V0}{1..3}; +TEST $CLI volume start $V0 + +# Mount FUSE +TEST glusterfs --acl -s $H0 --volfile-id $V0 $M0 + +TEST mkdir $M0/dir1 + +echo "Testing pacls on rebalance" > $M0/dir1/FILE1 +FPATH1=`find $B0/ -name FILE1` + +# Rename the file to create a linkto, for rebalance to +# act on the file + +TEST mv $M0/dir1/FILE1 $M0/dir1/FILE2 +FPATH2=`find $B0/ -perm 1000 -name FILE2` + +setfacl -m user:root:rwx $M0/dir1/FILE2 + +# Run rebalance without the force option to skip +# the file migration +TEST $CLI volume rebalance $V0 start + +EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" rebalance_status_field $V0 + +#Check that the file has been skipped,i.e., the linkto still exists +EXPECT "yes" is_sticky_set $FPATH2 + + +#The linkto file should not have any posix acls set +COUNT=`getfacl $FPATH2 |grep -c "user:root:rwx"` +EXPECT "0" echo $COUNT + +cleanup; |