From f55ab691da131d607c03a06cad9b55b77a3e58b4 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 2 Jul 2024 16:34:52 -0700 Subject: [PATCH] crimson/.../peering_event: complete_rctx under the PGPeeringPipeline::process stage Otherwise, transactions and messages might be submitted out of order. Signed-off-by: Samuel Just (cherry picked from commit 38ab28739e377059687c89e0b1d9637a55c70a7e) --- src/crimson/osd/osd_operations/peering_event.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/crimson/osd/osd_operations/peering_event.cc b/src/crimson/osd/osd_operations/peering_event.cc index 8e7a41a8fd9..8c12f8b467d 100644 --- a/src/crimson/osd/osd_operations/peering_event.cc +++ b/src/crimson/osd/osd_operations/peering_event.cc @@ -102,12 +102,11 @@ seastar::future<> PeeringEvent::with_pg( * now, but we'll want to remove that as well. * https://tracker.ceph.com/issues/66708 */ - return interruptor::async([this, pg] { + return interruptor::async([this, pg, &shard_services] { pg->do_peering_event(evt, ctx); + complete_rctx(shard_services, pg).get(); }).then_interruptible([this] { return that()->get_handle().complete(); - }).then_interruptible([this, pg, &shard_services] { - return complete_rctx(shard_services, pg); }); }); }, [this](std::exception_ptr ep) { -- 2.39.5