From 6f8aad0514e33d1ccde831a2580d1c5f6e66874b Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Mon, 22 Dec 2014 12:34:19 +0100 Subject: [PATCH] tests: recovery of a lost object in erasure coded pools http://tracker.ceph.com/issues/10409 Refs: #10409 Signed-off-by: Loic Dachary --- src/test/osd/osd-scrub-repair.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/osd/osd-scrub-repair.sh b/src/test/osd/osd-scrub-repair.sh index a91e5dab4ed5..1170b1535704 100755 --- a/src/test/osd/osd-scrub-repair.sh +++ b/src/test/osd/osd-scrub-repair.sh @@ -95,6 +95,37 @@ function corrupt_and_repair_one() { wait_for_clean || return 1 } +function TEST_corrupt_and_repair_erasure_coded() { + local dir=$1 + local poolname=ecpool + local payload=ABCDEF + + setup $dir || return 1 + run_mon $dir a || return 1 + run_osd $dir 0 || return 1 + run_osd $dir 1 || return 1 + run_osd $dir 2 || return 1 + run_osd $dir 3 || return 1 + wait_for_clean || return 1 + + ceph osd erasure-code-profile set myprofile \ + k=2 m=2 ruleset-failure-domain=osd || return 1 + ceph osd pool create $poolname 1 1 erasure myprofile \ + || return 1 + + add_something $dir $poolname + + local primary=$(get_primary $poolname SOMETHING) + local -a osds=($(get_osds $poolname SOMETHING | sed -e "s/$primary//")) + local not_primary_first=${osds[0]} + local not_primary_second=${osds[1]} + + # Reproduces http://tracker.ceph.com/issues/10409 + corrupt_and_repair_one $dir $poolname $not_primary_first || return 1 + + teardown $dir || return 1 +} + main osd-scrub-repair "$@" # Local Variables: -- 2.47.3