From 0855ef827b2e79b70b82c9feec656a4fd16f3d85 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Tue, 25 Jun 2019 07:57:43 -0700 Subject: [PATCH] osd: Only request scrub reservations from PG's acting set Fixes: http://tracker.ceph.com/issues/40530 Signed-off-by: David Zafman --- src/osd/PG.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 92504127ded0..a0c5f40b80e2 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1437,8 +1437,7 @@ bool PG::sched_scrub() clear_scrub_reserved(); scrub_unreserve_replicas(); return false; - } else if (scrubber.reserved_peers.size() == - recovery_state.get_acting().size()) { + } else if (scrubber.reserved_peers.size() == get_actingset().size()) { dout(20) << __func__ << ": success, reserved self and replicas" << dendl; if (scrubber.time_for_deep) { dout(10) << __func__ << ": scrub will be deep" << dendl; @@ -2030,8 +2029,8 @@ void PG::clear_scrub_reserved() void PG::scrub_reserve_replicas() { ceph_assert(recovery_state.get_backfill_targets().empty()); - for (set::iterator i = get_acting_recovery_backfill().begin(); - i != get_acting_recovery_backfill().end(); + for (set::iterator i = get_actingset().begin(); + i != get_actingset().end(); ++i) { if (*i == pg_whoami) continue; dout(10) << "scrub requesting reserve from osd." << *i << dendl; @@ -2047,8 +2046,8 @@ void PG::scrub_reserve_replicas() void PG::scrub_unreserve_replicas() { ceph_assert(recovery_state.get_backfill_targets().empty()); - for (set::iterator i = get_acting_recovery_backfill().begin(); - i != get_acting_recovery_backfill().end(); + for (set::iterator i = get_actingset().begin(); + i != get_actingset().end(); ++i) { if (*i == pg_whoami) continue; dout(10) << "scrub requesting unreserve from osd." << *i << dendl; -- 2.47.3