summaryrefslogtreecommitdiffstats
path: root/tests/bugs/rpc/bug-954057.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bugs/rpc/bug-954057.t')
-rwxr-xr-xtests/bugs/rpc/bug-954057.t21
1 files changed, 16 insertions, 5 deletions
diff --git a/tests/bugs/rpc/bug-954057.t b/tests/bugs/rpc/bug-954057.t
index 9c48207b711..faaf261d88b 100755
--- a/tests/bugs/rpc/bug-954057.t
+++ b/tests/bugs/rpc/bug-954057.t
@@ -3,15 +3,25 @@
. $(dirname $0)/../../include.rc
. $(dirname $0)/../../volume.rc
-#This script checks if use-readdirp option works as accepted in mount options
-
+# This script checks if use-readdirp option works as accepted in mount options
+
+# Note on re-reading $M0/new after enabling root-squash:
+# Since we have readen it once, the file is present in various caches.
+# In order to actually fail on second attempt we must:
+# 1) drop kernel cache, by ( cd $M0 ; umount $M0 )
+# 2) make sure FUSE does not cache the entry. This is also
+# in the kernel, but not flushed by a failed umount.
+# Using $GFS enforces this because it sets --entry-timeout=0
+# 3) make sure reading new permissins does not produce stale
+# information from glusterfs metadata cache. Setting volume
+# option performance.stat-prefetch off enforces that.
TEST glusterd
TEST pidof glusterd
TEST $CLI volume create $V0 $H0:$B0/${V0}
TEST $CLI volume start $V0
-TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0
+TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0
TEST mkdir $M0/dir
TEST mkdir $M0/nobody
@@ -21,8 +31,9 @@ TEST cp $M0/file $M0/new
TEST chmod 700 $M0/new
TEST cat $M0/new
+TEST $CLI volume set $V0 performance.stat-prefetch off
TEST $CLI volume set $V0 server.root-squash enable
-TEST `echo 3 > /proc/sys/vm/drop_caches`
+( cd $M0 ; umount $M0 ) # fails but drops kernel cache
TEST ! mkdir $M0/other
TEST mkdir $M0/nobody/other
TEST cat $M0/file
@@ -30,7 +41,7 @@ TEST ! cat $M0/new
TEST `echo "nobody" >> $M0/nobody/file`
#mount the client without root-squashing
-TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 --no-root-squash=yes $M1
+TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 --no-root-squash=yes $M1
TEST mkdir $M1/m1_dir
TEST `echo "file" >> $M1/m1_file`
TEST cp $M0/file $M1/new