setup $dir || return 1
run_mon $dir a --osd_pool_default_size=2 || return 1
run_mgr $dir x || return 1
- local ceph_osd_args="--osd-scrub-interval-randomize-ratio=0 --osd-deep-scrub-randomize-ratio=0"
+ local ceph_osd_args="--osd-scrub-interval-randomize-ratio=0 --osd-deep-scrub-randomize-ratio=0 "
+ ceph_osd_args+="--osd_scrub_backoff_ratio=0"
run_osd $dir 0 $ceph_osd_args || return 1
run_osd $dir 1 $ceph_osd_args || return 1
create_rbd_pool || return 1
# Make sure bad object found
rados list-inconsistent-obj $pg | jq '.' | grep -q $objname || return 1
+ flush_pg_stats
local last_scrub=$(get_last_scrub_stamp $pg)
# Fake a schedule scrub
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path osd.${primary}) \
# Can't upgrade with this set
ceph osd set nodeep-scrub
# Let map change propagate to OSDs
- sleep 2
+ flush pg_stats
+ sleep 5
# Fake a schedule scrub
- local last_scrub=$(get_last_scrub_stamp $pg)
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path osd.${primary}) \
trigger_scrub $pg || return 1
# Wait for schedule regular scrub
# Bad object still known
rados list-inconsistent-obj $pg | jq '.' | grep -q $objname || return 1
+ flush_pg_stats
# Request a regular scrub and it will be done
- local scrub_backoff_ratio=$(get_config osd ${primary} osd_scrub_backoff_ratio)
- set_config osd ${primary} osd_scrub_backoff_ratio 0
pg_scrub $pg
- sleep 1
- set_config osd ${primary} osd_scrub_backoff_ratio $scrub_backoff_ratio
grep -q "Regular scrub request, deep-scrub details will be lost" $dir/osd.${primary}.log || return 1
# deep-scrub error is no longer present