see_also:
- osd_scrub_slow_reservation_response
with_legacy: false
+- name: osd_scrub_disable_reservation_queuing
+ type: bool
+ level: advanced
+ desc: Disable queuing of scrub reservations
+ long_desc: When set - scrub replica reservations are responded to immediately, with
+ either success or failure (the pre-Squid version behaviour). This configuration
+ option is introduced to support mixed-version clusters and debugging, and will
+ be removed in the next release.
+ default: false
+ with_legacy: false
# where rados plugins are stored
- name: osd_class_dir
type: str
DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases
dout(10) << "ReplicaUnreserved::react(const ReplicaReserveReq&)" << dendl;
- bool async_request = true && ev.m_op->get_req<MOSDScrubReserve>()->wait_for_resources /* && a config */;
+ const auto& m = *(ev.m_op->get_req<MOSDScrubReserve>());
+ const auto async_disabled = scrbr->get_pg_cct()->_conf.get_val<bool>(
+ "osd_scrub_disable_reservation_queuing");
+ const bool async_request = !async_disabled && m.wait_for_resources;
+ dout(15) << fmt::format(
+ "ReplicaUnreserved::react(const ReplicaReserveReq&): "
+ "request:{} disabled?:{} -> async? {}", m.wait_for_resources,
+ async_disabled, async_request)
+ << dendl;
+
switch (context<ReplicaActive>().on_reserve_request(ev, async_request)) {
case ReplicaReactCode::discard:
return discard_event();