From: Samuel Just Date: Thu, 22 Sep 2022 04:08:24 +0000 (-0700) Subject: crimson/osd/heartbeat: drop ownership of messenger instances X-Git-Tag: v18.1.0~639^2~19^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=280335852539132a44f07f9893552c5af9b0dc58;p=ceph-ci.git crimson/osd/heartbeat: drop ownership of messenger instances Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/heartbeat.cc b/src/crimson/osd/heartbeat.cc index 049bdac0383..ca8e7933a17 100644 --- a/src/crimson/osd/heartbeat.cc +++ b/src/crimson/osd/heartbeat.cc @@ -30,8 +30,8 @@ namespace { Heartbeat::Heartbeat(osd_id_t whoami, const crimson::osd::ShardServices& service, crimson::mon::Client& monc, - crimson::net::MessengerRef front_msgr, - crimson::net::MessengerRef back_msgr) + crimson::net::Messenger &front_msgr, + crimson::net::Messenger &back_msgr) : whoami{whoami}, service{service}, monc{monc}, @@ -56,13 +56,13 @@ seastar::future<> Heartbeat::start(entity_addrvec_t front_addrs, } using crimson::net::SocketPolicy; - front_msgr->set_policy(entity_name_t::TYPE_OSD, + front_msgr.set_policy(entity_name_t::TYPE_OSD, SocketPolicy::lossy_client(0)); - back_msgr->set_policy(entity_name_t::TYPE_OSD, + back_msgr.set_policy(entity_name_t::TYPE_OSD, SocketPolicy::lossy_client(0)); - return seastar::when_all_succeed(start_messenger(*front_msgr, + return seastar::when_all_succeed(start_messenger(front_msgr, front_addrs), - start_messenger(*back_msgr, + start_messenger(back_msgr, back_addrs)) .then_unpack([this] { timer.arm_periodic( @@ -87,11 +87,11 @@ seastar::future<> Heartbeat::stop() { logger().info("{}", __func__); timer.cancel(); - front_msgr->stop(); - back_msgr->stop(); + front_msgr.stop(); + back_msgr.stop(); return gate.close().then([this] { - return seastar::when_all_succeed(front_msgr->shutdown(), - back_msgr->shutdown()); + return seastar::when_all_succeed(front_msgr.shutdown(), + back_msgr.shutdown()); }).then_unpack([] { return seastar::now(); }); @@ -99,29 +99,29 @@ seastar::future<> Heartbeat::stop() const entity_addrvec_t& Heartbeat::get_front_addrs() const { - return front_msgr->get_myaddrs(); + return front_msgr.get_myaddrs(); } const entity_addrvec_t& Heartbeat::get_back_addrs() const { - return back_msgr->get_myaddrs(); + return back_msgr.get_myaddrs(); } -crimson::net::MessengerRef Heartbeat::get_front_msgr() const +crimson::net::Messenger& Heartbeat::get_front_msgr() const { return front_msgr; } -crimson::net::MessengerRef Heartbeat::get_back_msgr() const +crimson::net::Messenger& Heartbeat::get_back_msgr() const { return back_msgr; } void Heartbeat::set_require_authorizer(bool require_authorizer) { - if (front_msgr->get_require_authorizer() != require_authorizer) { - front_msgr->set_require_authorizer(require_authorizer); - back_msgr->set_require_authorizer(require_authorizer); + if (front_msgr.get_require_authorizer() != require_authorizer) { + front_msgr.set_require_authorizer(require_authorizer); + back_msgr.set_require_authorizer(require_authorizer); } } @@ -520,9 +520,9 @@ void Heartbeat::Session::set_inactive_history(clock::time_point now) Heartbeat::Peer::Peer(Heartbeat& heartbeat, osd_id_t peer) : ConnectionListener(2), heartbeat{heartbeat}, peer{peer}, session{peer}, con_front(peer, heartbeat.whoami > peer, Connection::type_t::front, - *heartbeat.front_msgr, *this), + heartbeat.front_msgr, *this), con_back(peer, heartbeat.whoami > peer, Connection::type_t::back, - *heartbeat.back_msgr, *this) + heartbeat.back_msgr, *this) { logger().info("Heartbeat::Peer: osd.{} added", peer); } diff --git a/src/crimson/osd/heartbeat.h b/src/crimson/osd/heartbeat.h index 655581b9973..044c0d9791f 100644 --- a/src/crimson/osd/heartbeat.h +++ b/src/crimson/osd/heartbeat.h @@ -29,8 +29,8 @@ public: Heartbeat(osd_id_t whoami, const crimson::osd::ShardServices& service, crimson::mon::Client& monc, - crimson::net::MessengerRef front_msgr, - crimson::net::MessengerRef back_msgr); + crimson::net::Messenger &front_msgr, + crimson::net::Messenger &back_msgr); seastar::future<> start(entity_addrvec_t front, entity_addrvec_t back); @@ -45,8 +45,8 @@ public: const entity_addrvec_t& get_front_addrs() const; const entity_addrvec_t& get_back_addrs() const; - crimson::net::MessengerRef get_front_msgr() const; - crimson::net::MessengerRef get_back_msgr() const; + crimson::net::Messenger &get_front_msgr() const; + crimson::net::Messenger &get_back_msgr() const; void set_require_authorizer(bool); // Dispatcher methods @@ -78,8 +78,8 @@ private: const osd_id_t whoami; const crimson::osd::ShardServices& service; crimson::mon::Client& monc; - crimson::net::MessengerRef front_msgr; - crimson::net::MessengerRef back_msgr; + crimson::net::Messenger &front_msgr; + crimson::net::Messenger &back_msgr; seastar::timer timer; // use real_clock so it can be converted to utime_t diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 795a040a8be..d52ef08717c 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -357,7 +357,7 @@ seastar::future<> OSD::start() ).then([this] { heartbeat.reset(new Heartbeat{ whoami, get_shard_services(), - *monc, hb_front_msgr, hb_back_msgr}); + *monc, *hb_front_msgr, *hb_back_msgr}); return store.start(); }).then([this] { return store.mount().handle_error( @@ -513,10 +513,10 @@ seastar::future<> OSD::_send_boot() if (cluster_msgr->set_addr_unknowns(public_addrs)) { cluster_addrs = cluster_msgr->get_myaddrs(); } - if (heartbeat->get_back_msgr()->set_addr_unknowns(cluster_addrs)) { + if (heartbeat->get_back_msgr().set_addr_unknowns(cluster_addrs)) { hb_back_addrs = heartbeat->get_back_addrs(); } - if (heartbeat->get_front_msgr()->set_addr_unknowns(public_addrs)) { + if (heartbeat->get_front_msgr().set_addr_unknowns(public_addrs)) { hb_front_addrs = heartbeat->get_front_addrs(); } logger().info("hb_back_msgr: {}", hb_back_addrs);