]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: recovery of a lost object in erasure coded pools 3233/head
authorLoic Dachary <ldachary@redhat.com>
Mon, 22 Dec 2014 11:34:19 +0000 (12:34 +0100)
committerLoic Dachary <ldachary@redhat.com>
Mon, 22 Dec 2014 12:56:24 +0000 (13:56 +0100)
http://tracker.ceph.com/issues/10409 Refs: #10409

Signed-off-by: Loic Dachary <ldachary@redhat.com>
src/test/osd/osd-scrub-repair.sh

index a91e5dab4ed5675267c7fa20c9f95a04198b37cb..1170b1535704d8b19374c626e20c52f213558ab7 100755 (executable)
@@ -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: