From c426a2ba610f7250ab14a2af27c70d1759778bd4 Mon Sep 17 00:00:00 2001 From: Mohit Agrawal Date: Wed, 26 Feb 2025 17:09:33 +0530 Subject: [PATCH] crimson: Trigger a wake operation via acquire_throttle The background recovery is not showing any progress for crimson when crimson_osd_scheduler_concurrency is set more than 0. After read the source code it seems the recovery was not showing any progress because initially the queue is empty it was waiting for a future that eventually available after call wake() so call a wake() operation to return a future. Fixes: https://tracker.ceph.com/issues/69788 Signed-off-by: Mohit Agrawal --- src/crimson/osd/osd_operation.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/crimson/osd/osd_operation.cc b/src/crimson/osd/osd_operation.cc index 0d7ad313865a..07fff56280c9 100644 --- a/src/crimson/osd/osd_operation.cc +++ b/src/crimson/osd/osd_operation.cc @@ -178,6 +178,7 @@ seastar::future<> OperationThrottler::acquire_throttle( crimson::osd::scheduler::item_t item{params, seastar::promise<>()}; auto fut = item.wake.get_future(); scheduler->enqueue(std::move(item)); + wake(); return fut; } -- 2.47.3