From b9e3b15c07968a2fc69698afe96fa33de4b05b0d Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Sun, 19 Jan 2020 15:33:58 +0800 Subject: [PATCH] crimson: shutdown messengers before deallocate OSD Stop dispatching events from messenger when OSD is about to stop and deallocate. Signed-off-by: Yingxin Cheng --- src/crimson/osd/heartbeat.cc | 3 ++- src/crimson/osd/osd.cc | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crimson/osd/heartbeat.cc b/src/crimson/osd/heartbeat.cc index 2fdfe1abee5..12f6be2769b 100644 --- a/src/crimson/osd/heartbeat.cc +++ b/src/crimson/osd/heartbeat.cc @@ -71,7 +71,8 @@ Heartbeat::start_messenger(crimson::net::Messenger& msgr, seastar::future<> Heartbeat::stop() { - return seastar::now(); + return seastar::when_all_succeed(front_msgr.shutdown(), + back_msgr.shutdown()); } const entity_addrvec_t& Heartbeat::get_front_addrs() const diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index fcbfe47f837..8e49d122203 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -400,6 +400,10 @@ seastar::future<> OSD::stop() return heartbeat->stop(); }).then([this] { return monc->stop(); + }).then([this] { + return when_all_succeed( + public_msgr.shutdown(), + cluster_msgr.shutdown()); }).then([this] { return store->umount(); }).handle_exception([](auto ep) { -- 2.47.3