From: Mohit Agrawal Date: Wed, 26 Feb 2025 11:39:33 +0000 (+0530) Subject: crimson: Trigger a wake operation via acquire_throttle X-Git-Tag: v20.3.0~432^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c426a2ba610f7250ab14a2af27c70d1759778bd4;p=ceph.git 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 --- 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; }