3
. $(dirname $0)/../include.rc
4
. $(dirname $0)/../volume.rc
8
TESTS_EXPECTED_IN_LOOP=20
12
TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2,3,4,5}
13
TEST $CLI volume set $V0 cluster.background-self-heal-count 0
14
TEST $CLI volume set $V0 cluster.eager-lock off
15
TEST $CLI volume set $V0 performance.flush-behind off
16
TEST $CLI volume start $V0
18
for i in $(seq 1 3); do
19
TEST $CLI volume create ${V0}_afr$i replica 3 $H0:$B0/${V0}_afr${i}{0,1,2,3,4,5}
20
TEST $CLI volume start ${V0}_afr$i
21
TEST $CLI volume create ${V0}_ec$i disperse 6 redundancy 2 $H0:$B0/${V0}_ec${i}{0,1,2,3,4,5}
22
TEST $CLI volume start ${V0}_ec$i
25
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^1$" shd_count
29
#Only stopping glusterd, so there will be one shd
30
EXPECT_WITHIN $PROCESS_DOWN_TIMEOUT "^1$" shd_count
32
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^1$" shd_count
33
#Check the thread count become to number of volumes*number of ec subvolume (3*6=18)
34
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^18$" number_healer_threads_shd $V0 "ec_shd_index_healer"
35
#Check the thread count become to number of volumes*number of afr subvolume (4*6=24)
36
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^24$" number_healer_threads_shd $V0 "afr_shd_index_healer"
38
shd_pid=$(get_shd_mux_pid $V0)
39
for i in $(seq 1 3); do
40
afr_path="/var/run/gluster/shd/${V0}_afr$i/${V0}_afr$i-shd.pid"
41
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^${shd_pid}$" cat $afr_path
42
ec_path="/var/run/gluster/shd/${V0}_ec$i/${V0}_ec${i}-shd.pid"
43
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^${shd_pid}$" cat $ec_path
46
#Reboot a node scenario
48
#Only stopped glusterd, so there will be one shd
49
EXPECT_WITHIN $PROCESS_DOWN_TIMEOUT "^0$" shd_count
52
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^1$" shd_count
54
#Check the thread count become to number of volumes*number of ec subvolume (3*6=18)
55
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^18$" number_healer_threads_shd $V0 "ec_shd_index_healer"
56
#Check the thread count become to number of volumes*number of afr subvolume (4*6=24)
57
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^24$" number_healer_threads_shd $V0 "afr_shd_index_healer"
59
shd_pid=$(get_shd_mux_pid $V0)
60
for i in $(seq 1 3); do
61
afr_path="/var/run/gluster/shd/${V0}_afr$i/${V0}_afr$i-shd.pid"
62
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^${shd_pid}$" cat $afr_path
63
ec_path="/var/run/gluster/shd/${V0}_ec$i/${V0}_ec${i}-shd.pid"
64
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^${shd_pid}$" cat $ec_path
67
for i in $(seq 1 3); do
68
TEST $CLI volume stop ${V0}_afr$i
69
TEST $CLI volume stop ${V0}_ec$i
72
EXPECT_WITHIN $PROCESS_DOWN_TIMEOUT "^6$" number_healer_threads_shd $V0 "afr_shd_index_healer"
74
TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0
76
TEST kill_brick $V0 $H0 $B0/${V0}0
77
TEST kill_brick $V0 $H0 $B0/${V0}3
79
TEST touch $M0/foo{1..100}
81
EXPECT_WITHIN $HEAL_TIMEOUT "^204$" get_pending_heal_count $V0
83
TEST $CLI volume start ${V0} force
85
EXPECT_WITHIN $HEAL_TIMEOUT "^0$" get_pending_heal_count $V0
88
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
91
TEST $CLI volume stop ${V0}
92
TEST $CLI volume delete ${V0}
94
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^0$" shd_count