diff options
Diffstat (limited to 'tests/basic/ec')
-rwxr-xr-x | tests/basic/ec/ec-quorum-count-partial-failure.t | 50 | ||||
-rw-r--r-- | tests/basic/ec/ec-quorum-count.t | 2 | ||||
-rw-r--r-- | tests/basic/ec/ec-reset-brick.t | 50 | ||||
-rw-r--r-- | tests/basic/ec/gfapi-ec-open-truncate.c | 3 |
4 files changed, 54 insertions, 51 deletions
diff --git a/tests/basic/ec/ec-quorum-count-partial-failure.t b/tests/basic/ec/ec-quorum-count-partial-failure.t deleted file mode 100755 index 79f5825ae10..00000000000 --- a/tests/basic/ec/ec-quorum-count-partial-failure.t +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -#This test checks that partial failure of fop results in main fop failure only -cleanup; - -TEST glusterd -TEST pidof glusterd -TEST $CLI volume create $V0 disperse 6 redundancy 2 $H0:$B0/${V0}{0..5} -TEST $CLI volume create $V1 $H0:$B0/${V1}{0..5} -TEST $CLI volume set $V0 performance.flush-behind off -TEST $CLI volume start $V0 -TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id=/$V0 $M0 -EXPECT_WITHIN $CHILD_UP_TIMEOUT "6" ec_child_up_count $V0 0 - -TEST dd if=/dev/urandom of=$M0/a bs=12347 count=1 -TEST dd if=/dev/urandom of=$M0/b bs=12347 count=1 -TEST cp $M0/b $M0/c -TEST fallocate -p -l 101 $M0/c -TEST $CLI volume stop $V0 -TEST $CLI volume set $V0 debug.delay-gen posix; -TEST $CLI volume set $V0 delay-gen.delay-duration 10000000; -TEST $CLI volume set $V0 delay-gen.enable WRITE; -TEST $CLI volume set $V0 delay-gen.delay-percentage 100 -TEST $CLI volume set $V0 disperse.quorum-count 6 -TEST $CLI volume start $V0 -EXPECT_WITHIN $CHILD_UP_TIMEOUT "6" ec_child_up_count $V0 0 -cksum=$(dd if=$M0/a bs=12345 count=1 | md5sum | awk '{print $1}') -truncate -s 12345 $M0/a & #While write is waiting for 5 seconds, introduce failure -fallocate -p -l 101 $M0/b & -sleep 1 -TEST kill_brick $V0 $H0 $B0/${V0}0 -TEST wait -TEST $CLI volume start $V0 force -EXPECT_WITHIN $HEAL_TIMEOUT "^0$" get_pending_heal_count ${V0} -EXPECT "12345" stat --format=%s $M0/a -TEST kill_brick $V0 $H0 $B0/${V0}1 -TEST kill_brick $V0 $H0 $B0/${V0}2 -EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0; -TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id $V0 $M0 -EXPECT_WITHIN $CHILD_UP_TIMEOUT "4" ec_child_up_count $V0 0 -cksum_after_heal=$(dd if=$M0/a | md5sum | awk '{print $1}') -TEST [[ $cksum == $cksum_after_heal ]] -cksum=$(dd if=$M0/c | md5sum | awk '{print $1}') -cksum_after_heal=$(dd if=$M0/b | md5sum | awk '{print $1}') -TEST [[ $cksum == $cksum_after_heal ]] - -cleanup; diff --git a/tests/basic/ec/ec-quorum-count.t b/tests/basic/ec/ec-quorum-count.t index 56b5329c411..9310ebbb8f2 100644 --- a/tests/basic/ec/ec-quorum-count.t +++ b/tests/basic/ec/ec-quorum-count.t @@ -11,6 +11,8 @@ TEST $CLI volume create $V0 disperse 6 redundancy 2 $H0:$B0/${V0}{0..5} TEST $CLI volume create $V1 $H0:$B0/${V1}{0..5} TEST $CLI volume set $V0 disperse.eager-lock-timeout 5 TEST $CLI volume set $V0 performance.flush-behind off +TEST $CLI volume set $V0 disperse.background-heals 0 +TEST $CLI volume set $V0 disperse.heal-wait-qlength 0 #Should fail on non-disperse volume TEST ! $CLI volume set $V1 disperse.quorum-count 5 diff --git a/tests/basic/ec/ec-reset-brick.t b/tests/basic/ec/ec-reset-brick.t new file mode 100644 index 00000000000..f1a625df4ff --- /dev/null +++ b/tests/basic/ec/ec-reset-brick.t @@ -0,0 +1,50 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup +function num_entries { + ls -l $1 | wc -l +} + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 disperse 6 redundancy 2 $H0:$B0/${V0}{0..5} +TEST $CLI volume start $V0 +TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id $V0 $M0 +EXPECT_WITHIN $CHILD_UP_TIMEOUT "6" ec_child_up_count $V0 0 + +mkdir $M0/dir +touch $M0/dir/{1..10} + +mkdir $M0/dir/dir1 +touch $M0/dir/dir1/{1..10} + +#kill brick process +TEST $CLI volume reset-brick $V0 $H0:$B0/${V0}5 start +EXPECT_WITHIN $CHILD_UP_TIMEOUT "5" ec_child_up_count $V0 0 + +#reset-brick by removing all the data and create dir again +rm -rf $B0/${V0}5 +mkdir $B0/${V0}5 + +#start brick process and heal by commiting reset-brick +TEST $CLI volume reset-brick $V0 $H0:$B0/${V0}5 $H0:$B0/${V0}5 commit force + +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status +EXPECT_WITHIN $CHILD_UP_TIMEOUT "6" ec_child_up_count_shd $V0 0 + +EXPECT_WITHIN $HEAL_TIMEOUT "^0$" get_pending_heal_count ${V0} + +EXPECT "^12$" num_entries $B0/${V0}5/dir +EXPECT "^11$" num_entries $B0/${V0}5/dir/dir1 + +ec_version=$(get_hex_xattr trusted.ec.version $B0/${V0}0) +EXPECT "$ec_version" get_hex_xattr trusted.ec.version $B0/${V0}1 +EXPECT "$ec_version" get_hex_xattr trusted.ec.version $B0/${V0}2 +EXPECT "$ec_version" get_hex_xattr trusted.ec.version $B0/${V0}3 +EXPECT "$ec_version" get_hex_xattr trusted.ec.version $B0/${V0}4 +EXPECT "$ec_version" get_hex_xattr trusted.ec.version $B0/${V0}5 + +cleanup; diff --git a/tests/basic/ec/gfapi-ec-open-truncate.c b/tests/basic/ec/gfapi-ec-open-truncate.c index 22f17f436b6..fb16807003a 100644 --- a/tests/basic/ec/gfapi-ec-open-truncate.c +++ b/tests/basic/ec/gfapi-ec-open-truncate.c @@ -150,7 +150,8 @@ main(int argc, char *argv[]) for (i = 0; i < 20; i++) { ret = system( "[ $(for i in $(pgrep glusterfsd); do ls -l /proc/$i/fd | grep " - "\"[.]glusterfs\" | grep -v health_check; done | wc -l) == 3 ]"); + "\"[.]glusterfs\" | grep -v \".glusterfs/[0-9a-f][0-9a-f]\" | grep " + "-v health_check; done | wc -l) == 3 ]"); if (WIFEXITED(ret) && WEXITSTATUS(ret)) { printf("Ret value of system: %d\n, ifexited: %d, exitstatus: %d", ret, WIFEXITED(ret), WEXITSTATUS(ret)); |