tests: data-self-heal.t-create files from the mount point.
Currently data-self-heal.t creates files directly on the brick and sets the trusted.gfid xattr. Later it depends on stat from mount to create the .glusterfs/<gfid hard link>. The link creation doesn't seem to be happening always. Hence changing the test to create files from the mount point before modifying afr xattrs in the backend and triggering heal. Also disabled all performance translators. With these changes, http://review.gluster.org/#/c/10667/ is not failing in data-self-heal.t Change-Id: I7d054e52b97aeb0bdc2fdf9d70a8cf33318d4310 BUG: 1218304 Signed-off-by: Ravishankar N <ravishankar@redhat.com> Reviewed-on: http://review.gluster.org/10530 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
This commit is contained in:
parent
b7a7237535
commit
7e29c04d27
@ -5,17 +5,6 @@
|
||||
. $(dirname $0)/../../volume.rc
|
||||
cleanup;
|
||||
|
||||
function create_file_with_gfids {
|
||||
local b1_path=$1
|
||||
local b2_path=$2
|
||||
local filename=$3
|
||||
local gfid=$(get_random_gfid)
|
||||
touch $b1_path/$filename
|
||||
setfattr -n trusted.gfid -v $gfid $b1_path/$filename
|
||||
touch $b2_path/$filename
|
||||
setfattr -n trusted.gfid -v $gfid $b2_path/$filename
|
||||
}
|
||||
|
||||
function is_heal_done {
|
||||
local f1_path="${1}/${3}"
|
||||
local f2_path="${2}/${3}"
|
||||
@ -61,38 +50,45 @@ TEST glusterd
|
||||
TEST pidof glusterd
|
||||
TEST $CLI volume create $V0 replica 2 $H0:$B0/brick{0,1}
|
||||
TEST $CLI volume set $V0 cluster.background-self-heal-count 0
|
||||
TEST $CLI volume set $V0 performance.write-behind off
|
||||
TEST $CLI volume set $V0 performance.read-ahead off
|
||||
TEST $CLI volume set $V0 performance.io-cache off
|
||||
TEST $CLI volume set $V0 performance.stat-prefetch off
|
||||
TEST $CLI volume set $V0 performance.quick-read off
|
||||
TEST $CLI volume set $V0 performance.open-behind off
|
||||
|
||||
TEST $CLI volume start $V0
|
||||
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status
|
||||
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0
|
||||
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1
|
||||
TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0 --entry-timeout=0 --attribute-timeout=0;
|
||||
cd $M0
|
||||
TEST touch pending-changelog biggest-file-source.txt biggest-file-more-prio-than-changelog.txt same-size-more-prio-to-changelog.txt size-and-witness-same.txt self-accusing-vs-source.txt self-accusing-both.txt self-accusing-vs-innocent.txt self-accusing-bigger-exists.txt size-more-prio-than-self-accused.txt v1-dirty.txt split-brain.txt split-brain-all-dirty.txt split-brain-with-dirty.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 pending-changelog
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000010000000000000000 $B0/brick0/pending-changelog
|
||||
TEST "echo abc > $B0/brick1/pending-changelog"
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 biggest-file-source.txt
|
||||
TEST "echo abc > $B0/brick0/biggest-file-source.txt"
|
||||
TEST "echo abcd > $B0/brick1/biggest-file-source.txt"
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 biggest-file-more-prio-than-changelog.txt
|
||||
TEST "echo abc > $B0/brick0/biggest-file-more-prio-than-changelog.txt"
|
||||
TEST "echo abcd > $B0/brick1/biggest-file-more-prio-than-changelog.txt"
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick0/biggest-file-more-prio-than-changelog.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 same-size-more-prio-to-changelog.txt
|
||||
TEST "echo abc > $B0/brick0/same-size-more-prio-to-changelog.txt"
|
||||
TEST "echo def > $B0/brick1/same-size-more-prio-to-changelog.txt"
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick0/same-size-more-prio-to-changelog.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 size-and-witness-same.txt
|
||||
TEST "echo abc > $B0/brick0/size-and-witness-same.txt"
|
||||
TEST "echo def > $B0/brick1/size-and-witness-same.txt"
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick0/size-and-witness-same.txt
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick1/size-and-witness-same.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 split-brain.txt
|
||||
TEST "echo abc > $B0/brick0/split-brain.txt"
|
||||
TEST "echo def > $B0/brick1/split-brain.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick0/split-brain.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/split-brain.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 split-brain-all-dirty.txt
|
||||
TEST "echo abc > $B0/brick0/split-brain-all-dirty.txt"
|
||||
TEST "echo def > $B0/brick1/split-brain-all-dirty.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick0/split-brain-all-dirty.txt
|
||||
@ -100,21 +96,18 @@ TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/bric
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick0/split-brain-all-dirty.txt
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick1/split-brain-all-dirty.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 split-brain-with-dirty.txt
|
||||
TEST "echo abc > $B0/brick0/split-brain-with-dirty.txt"
|
||||
TEST "echo def > $B0/brick1/split-brain-with-dirty.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick0/split-brain-with-dirty.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/split-brain-with-dirty.txt
|
||||
TEST setfattr -n trusted.afr.dirty -v 0x000000200000000000000000 $B0/brick1/split-brain-with-dirty.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 self-accusing-vs-source.txt
|
||||
TEST "echo def > $B0/brick1/self-accusing-vs-source.txt"
|
||||
TEST "echo abc > $B0/brick0/self-accusing-vs-source.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/self-accusing-vs-source.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick1/self-accusing-vs-source.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick0/self-accusing-vs-source.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 self-accusing-both.txt
|
||||
TEST "echo abc > $B0/brick0/self-accusing-both.txt"
|
||||
TEST "echo def > $B0/brick1/self-accusing-both.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick0/self-accusing-both.txt
|
||||
@ -122,12 +115,10 @@ TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/bric
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/self-accusing-both.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick1/self-accusing-both.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 self-accusing-vs-innocent.txt
|
||||
TEST "echo abc > $B0/brick0/self-accusing-vs-innocent.txt"
|
||||
TEST "echo def > $B0/brick1/self-accusing-vs-innocent.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick1/self-accusing-vs-innocent.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 self-accusing-bigger-exists.txt
|
||||
TEST "echo abc > $B0/brick0/self-accusing-bigger-exists.txt"
|
||||
TEST "echo def > $B0/brick1/self-accusing-bigger-exists.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick0/self-accusing-bigger-exists.txt
|
||||
@ -135,7 +126,6 @@ TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000300000000000000000 $B0/bric
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/self-accusing-bigger-exists.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick1/self-accusing-bigger-exists.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 size-more-prio-than-self-accused.txt
|
||||
TEST "echo abc > $B0/brick0/size-more-prio-than-self-accused.txt"
|
||||
TEST "echo defg > $B0/brick1/size-more-prio-than-self-accused.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick0/size-more-prio-than-self-accused.txt
|
||||
@ -143,21 +133,13 @@ TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000300000000000000000 $B0/bric
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick1/size-more-prio-than-self-accused.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000200000000000000000 $B0/brick1/size-more-prio-than-self-accused.txt
|
||||
|
||||
TEST create_file_with_gfids $B0/brick0 $B0/brick1 v1-dirty.txt
|
||||
TEST "echo abc > $B0/brick0/v1-dirty.txt"
|
||||
TEST "echo def > $B0/brick1/v1-dirty.txt"
|
||||
TEST setfattr -n trusted.afr.$V0-client-0 -v 0x000000200000000000000000 $B0/brick0/v1-dirty.txt
|
||||
TEST setfattr -n trusted.afr.$V0-client-1 -v 0x000000100000000000000000 $B0/brick1/v1-dirty.txt
|
||||
|
||||
TEST $CLI volume start $V0
|
||||
TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0 --entry-timeout=0 --attribute-timeout=0;
|
||||
cd $M0
|
||||
TEST stat pending-changelog biggest-file-source.txt biggest-file-more-prio-than-changelog.txt same-size-more-prio-to-changelog.txt size-and-witness-same.txt self-accusing-vs-source.txt self-accusing-both.txt self-accusing-vs-innocent.txt self-accusing-bigger-exists.txt size-more-prio-than-self-accused.txt v1-dirty.txt
|
||||
cd -
|
||||
|
||||
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status
|
||||
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0
|
||||
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1
|
||||
TEST $CLI volume heal $V0 full
|
||||
EXPECT_WITHIN $HEAL_TIMEOUT "~" print_pending_heals pending-changelog biggest-file-source.txt biggest-file-more-prio-than-changelog.txt same-size-more-prio-to-changelog.txt size-and-witness-same.txt self-accusing-vs-source.txt self-accusing-both.txt self-accusing-vs-innocent.txt self-accusing-bigger-exists.txt size-more-prio-than-self-accused.txt v1-dirty.txt
|
||||
EXPECT "N" is_heal_done $B0/brick0 $B0/brick1 split-brain.txt
|
||||
|
Loading…
x
Reference in New Issue
Block a user