summaryrefslogtreecommitdiffstats
path: root/tests/bugs/glusterd/bug-1085330-and-bug-916549.t
blob: 892a30d74ea6aa7aba3a43d489c9291fcc626ef0 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/bash

. $(dirname $0)/../../include.rc
. $(dirname $0)/../../volume.rc

STR="1234567890"
volname="Vol"

cleanup;
TEST glusterd
TEST pidof glusterd
TEST $CLI volume info;

#testcase: bug-1085330

# Construct volname string such that its more than 256 characters
for i in {1..30}
do
    volname+=$STR
done
# Now $volname is more than 256 chars

TEST ! $CLI volume create $volname $H0:$B0/${volname}{1,2};

TEST $CLI volume info;

# Construct brick string such that its more than 256 characters
volname="Vol1234"
brick="brick"
for i in {1..30}
do
    brick+=$STR
done
# Now $brick1 is more than 256 chars

TEST ! $CLI volume create $volname $H0:$B0/$brick;

TEST $CLI volume info;

# Now try to create a volume with couple of bricks (strlen(volname) = 128 &
# strlen(brick1) = 128
# Command should still fail as strlen(volp path) > 256

volname="Volume-0"
brick="brick-00"
STR="12345678"

for i in {1..15}
do
    volname+=$STR
    brick+=$STR
done
TEST ! $CLI volume create $volname $H0:$B0/$brick;

TEST $CLI volume info;

# test case with brick path as 255 and a trailing "/"
brick=""
STR1="12345678"
volname="vol"

for i in {1..31}
do
    brick+=$STR1
done
brick+="123456/"

echo $brick | wc -c
# Now $brick is exactly 255 chars, but at end a trailing space
# This will still fail as volfpath exceeds more than _POSIX_MAX chars

TEST ! $CLI volume create $volname $H0:$B0/$brick;

TEST $CLI volume info;

# Positive test case
TEST $CLI volume create $V0 $H0:$B0/${V0}1;

TEST $CLI volume info;

TEST $CLI volume start $V0;

#testcase: bug-916549

pid_file=$(ls $GLUSTERD_PIDFILEDIR/vols/$V0/);
brick_pid=$(cat $GLUSTERD_PIDFILEDIR/vols/$V0/$pid_file);

kill -SIGKILL $brick_pid;
TEST $CLI volume start $V0 force;
TEST process_leak_count $(pidof glusterd);

cleanup