]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd/heartbeat: drop ownership of messenger instances
authorSamuel Just <sjust@redhat.com>
Thu, 22 Sep 2022 04:08:24 +0000 (21:08 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 27 Sep 2022 02:35:41 +0000 (19:35 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/heartbeat.cc
src/crimson/osd/heartbeat.h
src/crimson/osd/osd.cc

index 049bdac03837dbc8a34dac5b4895b9915664fd0a..ca8e7933a17c8e437d4538407c1567581f816bf9 100644 (file)
@@ -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);
 }
index 655581b9973603c7c847068a7d2d003b8ed7fb10..044c0d9791ff6f75464cb7be5b6abf29563303ef 100644 (file)
@@ -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<seastar::lowres_clock> timer;
   // use real_clock so it can be converted to utime_t
index 795a040a8becd5fcf8fe6993727c6369bde8fcd0..d52ef08717c1e45fdec9e8ee2ea9cabd5ea52ced 100644 (file)
@@ -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);