summaryrefslogtreecommitdiffstats
path: root/qa/standalone/scrub/osd-scrub-test.sh
diff options
context:
space:
mode:
authorSridhar Seshasayee <sseshasa@redhat.com>2021-06-21 14:47:32 +0200
committerSridhar Seshasayee <sseshasa@redhat.com>2021-07-30 14:46:00 +0200
commit33d2a2c93b533838f8efe1329181fb8990b4a511 (patch)
tree9b98ababc7ea7ffa8526da60b059b842c5fec7a4 /qa/standalone/scrub/osd-scrub-test.sh
parentqa/standalone/erasure-code: Modify erasure-code tests for mclock scheduler (diff)
downloadceph-33d2a2c93b533838f8efe1329181fb8990b4a511.tar.xz
ceph-33d2a2c93b533838f8efe1329181fb8990b4a511.zip
qa/standalone/scrub: Force a subset of scrub tests to use "wpq" scheduler
The following tests in the test files mentioned below use the "osd_scrub_sleep" option to introduce delays during scrubbing to help determine scrubbing states, validate reservations during scrubbing etc.. This works when using the "wpq" scheduler. But when the "mclock_scheduler" is enabled, the "osd_scrub_sleep" is disabled and overridden to 0. This is done to delegate the scheduling of the background scrubs to the "mclock_scheduler" based on the set QoS parameters. Due to this, the checks to verify the scrub states, reservations etc. fail since the window to check them is very short due to scrubs completing very quickly. This affects a small subset of scrub tests mentioned below, 1. osd-scrub-dump.sh -> TEST_recover_unexpected() 2. osd-scrub-repair.sh -> TEST_auto_repair_bluestore_tag() 3. osd-scrub-test.sh -> TEST_scrub_abort(), TEST_deep_scrub_abort() Only for the above tests, until there's a reliable way to query scrub states with "--osd-scrub-sleep" set to 0, the "osd_op_queue" config option is set to "wpq". Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
Diffstat (limited to 'qa/standalone/scrub/osd-scrub-test.sh')
-rwxr-xr-xqa/standalone/scrub/osd-scrub-test.sh13
1 files changed, 9 insertions, 4 deletions
diff --git a/qa/standalone/scrub/osd-scrub-test.sh b/qa/standalone/scrub/osd-scrub-test.sh
index 5dd029c356f..6cea0b8fcf8 100755
--- a/qa/standalone/scrub/osd-scrub-test.sh
+++ b/qa/standalone/scrub/osd-scrub-test.sh
@@ -301,10 +301,15 @@ function _scrub_abort() {
run_mgr $dir x || return 1
for osd in $(seq 0 $(expr $OSDS - 1))
do
- run_osd $dir $osd --osd_pool_default_pg_autoscale_mode=off \
- --osd_deep_scrub_randomize_ratio=0.0 \
- --osd_scrub_sleep=5.0 \
- --osd_scrub_interval_randomize_ratio=0 || return 1
+ # Set scheduler to "wpq" until there's a reliable way to query scrub
+ # states with "--osd-scrub-sleep" set to 0. The "mclock_scheduler"
+ # overrides the scrub sleep to 0 and as a result the checks in the
+ # test fail.
+ run_osd $dir $osd --osd_pool_default_pg_autoscale_mode=off \
+ --osd_deep_scrub_randomize_ratio=0.0 \
+ --osd_scrub_sleep=5.0 \
+ --osd_scrub_interval_randomize_ratio=0 \
+ --osd_op_queue=wpq || return 1
done
# Create a pool with a single pg