mirror of
https://github.com/ceph/ceph
synced 2025-02-23 02:57:21 +00:00
Merge pull request #52529 from xxhdx1985126/wip-61943
crimson/osd/osd_operations: add pipeline to LogMissingRequest to sync it Reviewed-by: Samuel Just <sjust@redhat.com> Reviewed-by: Matan Breizman <mbreizma@redhat.com>
This commit is contained in:
commit
3f87e4da85
@ -61,7 +61,18 @@ seastar::future<> LogMissingRequest::with_pg(
|
||||
|
||||
IRef ref = this;
|
||||
return interruptor::with_interruption([this, pg] {
|
||||
return pg->do_update_log_missing(req, conn);
|
||||
logger().debug("{}: pg present", *this);
|
||||
return this->template enter_stage<interruptor>(client_pp(*pg).await_map
|
||||
).then_interruptible([this, pg] {
|
||||
return this->template with_blocking_event<
|
||||
PG_OSDMapGate::OSDMapBlocker::BlockingEvent
|
||||
>([this, pg](auto &&trigger) {
|
||||
return pg->osdmap_gate.wait_for_map(
|
||||
std::move(trigger), req->min_epoch);
|
||||
});
|
||||
}).then_interruptible([this, pg](auto) {
|
||||
return pg->do_update_log_missing(req, conn);
|
||||
});
|
||||
}, [ref](std::exception_ptr) { return seastar::now(); }, pg);
|
||||
}
|
||||
|
||||
|
@ -59,6 +59,8 @@ public:
|
||||
ConnectionPipeline::AwaitActive::BlockingEvent,
|
||||
ConnectionPipeline::AwaitMap::BlockingEvent,
|
||||
ConnectionPipeline::GetPG::BlockingEvent,
|
||||
ClientRequest::PGPipeline::AwaitMap::BlockingEvent,
|
||||
PG_OSDMapGate::OSDMapBlocker::BlockingEvent,
|
||||
PGMap::PGCreationBlockingEvent,
|
||||
OSD_OSDMapGate::OSDMapBlocker::BlockingEvent
|
||||
> tracking_events;
|
||||
|
Loading…
Reference in New Issue
Block a user