diff options
Diffstat (limited to 'tests/000-flaky/basic_ec_ec-quorum-count-partial-failure.t')
-rw-r--r-- | tests/000-flaky/basic_ec_ec-quorum-count-partial-failure.t | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/000-flaky/basic_ec_ec-quorum-count-partial-failure.t b/tests/000-flaky/basic_ec_ec-quorum-count-partial-failure.t new file mode 100644 index 00000000000..42808ce0c0e --- /dev/null +++ b/tests/000-flaky/basic_ec_ec-quorum-count-partial-failure.t @@ -0,0 +1,50 @@ +#!/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; |