local poolname=$2
local obj=${3:-SOMETHING}
- wait_for_clean || return 1
-
ceph osd set noscrub || return 1
ceph osd set nodeep-scrub || return 1
run_mon $dir a --osd_pool_default_size=2 || return 1
run_osd $dir 0 || return 1
run_osd $dir 1 || return 1
+ wait_for_clean || return 1
add_something $dir $poolname
corrupt_and_repair_one $dir $poolname $(get_not_primary $poolname SOMETHING) || return 1
objectstore_tool $dir $osd SOMETHING list-attrs || return 1
rados --pool $poolname get SOMETHING $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
-
- wait_for_clean || return 1
}
function corrupt_and_repair_erasure_coded() {
ceph osd pool create $poolname 1 1 erasure $profile \
|| return 1
+ wait_for_clean || return 1
add_something $dir $poolname
--osd-scrub-min-interval=5 \
--osd-scrub-interval-randomize-ratio=0
done
+ wait_for_clean || return 1
# Create an EC pool
ceph osd erasure-code-profile set myprofile \
k=2 m=1 ruleset-failure-domain=osd || return 1
ceph osd pool create $poolname 8 8 erasure myprofile || return 1
+ wait_for_clean || return 1
# Put an object
local payload=ABCDEF
echo $payload > $dir/ORIGINAL
rados --pool $poolname put SOMETHING $dir/ORIGINAL || return 1
- wait_for_clean || return 1
# Remove the object from one shard physically
objectstore_tool $dir $(get_not_primary $poolname SOMETHING) SOMETHING remove || return 1
k=2 m=2 ruleset-failure-domain=osd || return 1
ceph osd pool create $poolname 1 1 erasure myprofile \
|| return 1
+ wait_for_clean || return 1
add_something $dir $poolname
for id in $(seq 0 2) ; do
activate_osd $dir $id >&2 || return 1
done
- wait_for_clean >&2
+ wait_for_clean || return 1
# Get get - both objects should in the same PG
local pg=$(get_pg $poolname MOBJ0)