summaryrefslogtreecommitdiffstats
path: root/tests/basic/distribute/non-root-unlink-stale-linkto.t
blob: d6c866ffc8e645f0edd881e99920ae3417e8b13a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash

. $(dirname $0)/../../include.rc
. $(dirname $0)/../../volume.rc
. $(dirname $0)/../../nfs.rc
. $(dirname $0)/../../common-utils.rc

# Test overview:
# Check that non-privileged users can also clean up stale linkto files
#
# 1. Use the current parallel-readdir behaviour of changing the DHT child subvols
# in the graph to generate stale linkto files
# 2. Access the file with the stale linkto file as a non-root user
# 3. This should now succeed (returned EIO before commit 3fb1df7870e03c9de)

USERNAME=user11
cleanup

TEST glusterd
TEST pidof glusterd

TEST $CLI volume create $V0 $H0:$B0/$V0-{1,2}
TEST $CLI volume start $V0
TEST $CLI volume set $V0 performance.parallel-readdir on

# Mount using FUSE and create a file
TEST glusterfs -s $H0 --volfile-id $V0 $M0

# Create a file for testing
TEST dd if=/dev/urandom of=$M0/FILE-1 count=1 bs=16k

#Rename to create a linkto file
TEST mv $M0/FILE-1 $M0/FILE-2

# This should change the graph and cause the linkto values to become stale
TEST $CLI volume set $V0 performance.parallel-readdir off

$CLI volume set $V0 allow-insecure on


TEST useradd -m $USERNAME

#Use a fresh mount so as to trigger a lookup everywhere
TEST glusterfs -s $H0 --volfile-id $V0 $M1
TEST run_cmd_as_user $USERNAME "ls $M1/FILE-2"


# Cleanup
TEST userdel --force $USERNAME
cleanup