diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/basic/tier/tier.t | 7 | ||||
-rw-r--r-- | tests/bugs/glusterd/bug-1303028-Rebalance-glusterd-rpc-connection-issue.t | 61 | ||||
-rw-r--r-- | tests/tier.rc | 11 |
3 files changed, 77 insertions, 2 deletions
diff --git a/tests/basic/tier/tier.t b/tests/basic/tier/tier.t index c7c95690e70..cfd8e775f7f 100755 --- a/tests/basic/tier/tier.t +++ b/tests/basic/tier/tier.t @@ -13,6 +13,10 @@ MIGRATION_TIMEOUT=10 DEMOTE_FREQ=4 PROMOTE_FREQ=12 +function detach_start { + $CLI volume tier $1 detach start + echo $?; +} function file_on_slow_tier { found=0 @@ -191,8 +195,7 @@ EXPECT "0" file_on_slow_tier d1/data.txt $md5data EXPECT "0" file_on_slow_tier d1/data2.txt $md5data2 EXPECT "0" file_on_slow_tier "./d1/$SPACE_FILE" $md5space -TEST $CLI volume tier $V0 detach start - +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" detach_start $V0 EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" remove_brick_status_completed_field "$V0 $H0:$B0/${V0}${CACHE_BRICK_FIRST}" TEST $CLI volume tier $V0 detach commit diff --git a/tests/bugs/glusterd/bug-1303028-Rebalance-glusterd-rpc-connection-issue.t b/tests/bugs/glusterd/bug-1303028-Rebalance-glusterd-rpc-connection-issue.t new file mode 100644 index 00000000000..a2a10ee5ef6 --- /dev/null +++ b/tests/bugs/glusterd/bug-1303028-Rebalance-glusterd-rpc-connection-issue.t @@ -0,0 +1,61 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../tier.rc + + +# Creates a tiered volume with pure distribute hot and cold tiers +# Both hot and cold tiers will have an equal number of bricks. + +function create_dist_tier_vol () { + mkdir $B0/cold + mkdir $B0/hot + TEST $CLI volume create $V0 $H0:$B0/cold/${V0}{1..3} + TEST $CLI volume set $V0 performance.quick-read off + TEST $CLI volume set $V0 performance.io-cache off + TEST $CLI volume start $V0 + TEST $CLI volume attach-tier $V0 $H0:$B0/hot/${V0}{1..2} + TEST $CLI volume set $V0 cluster.tier-mode test +} + +function non_zero_check () { +if [ "$1" -ne 0 ] +then + echo "0" +else + echo "1" +fi +} + + +cleanup; + +#Basic checks +TEST glusterd +TEST pidof glusterd +TEST $CLI volume status + + +#Create and start a tiered volume +create_dist_tier_vol +EXPECT_WITHIN $PROCESS_UP_TIMEOUT 0 tier_deamon_check +sleep 2 #wait for some time to run tier daemon +time_before_restarting=$(rebalance_run_time $V0); + +#checking for elapsed time after sleeping for two seconds. +EXPECT "0" non_zero_check $time_before_restarting; + +#Difference of elapsed time should be positive + +kill -9 $(pidof glusterd); +TEST glusterd; +sleep 2; +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" tier_deamon_check; +time1=$(rebalance_run_time $V0); +EXPECT "0" non_zero_check $time1; +sleep 4; +time2=$(rebalance_run_time $V0); +EXPECT "0" non_zero_check $time2; +diff=`expr $time2 - $time1` +EXPECT "0" non_zero_check $diff; diff --git a/tests/tier.rc b/tests/tier.rc index 32ee00cf4fe..19234c521a0 100644 --- a/tests/tier.rc +++ b/tests/tier.rc @@ -113,3 +113,14 @@ function sleep_until_mid_cycle { mod=$(( $mod + $1 / 2 )) sleep $mod } + +function tier_deamon_check () { + pgrep -f "rebalance/$V0" + echo "$?" +} + +function rebalance_run_time () { + local time=$($CLI volume rebalance $1 status | awk '{print $9}' | sed -n 3p); + time=$(printf "%.0f\n" "$time"); + echo $time +} |