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 <moagrawa@redhat.com>
crimson::osd::scheduler::item_t item{params, seastar::promise<>()};
auto fut = item.wake.get_future();
scheduler->enqueue(std::move(item));
+ wake();
return fut;
}