From 30afadd162973a894d7453c23fc874dcda6a1dd1 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 13 Jul 2021 12:54:55 +0000 Subject: [PATCH] crimson/osd: send peering messages only when OSD is active. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/osd_operations/peering_event.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/osd_operations/peering_event.cc b/src/crimson/osd/osd_operations/peering_event.cc index c8c4a8c8c2e..7299c9421ce 100644 --- a/src/crimson/osd/osd_operations/peering_event.cc +++ b/src/crimson/osd/osd_operations/peering_event.cc @@ -148,8 +148,10 @@ seastar::future<> RemotePeeringEvent::complete_rctx(Ref pg) return PeeringEvent::complete_rctx(pg); } else { logger().debug("{}: OSDState is {}", *this, osd.state); - ceph_assert(osd.state.is_active()); - return shard_services.dispatch_context_messages(std::move(ctx)); + return osd.state.when_active().then([this] { + assert(osd.state.is_active()); + return shard_services.dispatch_context_messages(std::move(ctx)); + }); } } -- 2.39.5