]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/net: no futurized Messenger::set_myaddrs()
authorYingxin Cheng <yingxin.cheng@intel.com>
Thu, 20 Oct 2022 07:02:12 +0000 (15:02 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 21 Oct 2022 09:51:29 +0000 (17:51 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/net/Messenger.h
src/crimson/net/ProtocolV2.cc
src/crimson/net/SocketMessenger.cc
src/crimson/net/SocketMessenger.h
src/crimson/osd/osd.cc

index a34db2e42db3e8f2b50bce247c1414424bd53ed1..615403d5aa30538faeb9b04d5cb6316889748cf1 100644 (file)
@@ -57,10 +57,7 @@ public:
   const entity_name_t& get_myname() const { return my_name; }
   const entity_addrvec_t& get_myaddrs() const { return my_addrs; }
   entity_addr_t get_myaddr() const { return my_addrs.front(); }
-  virtual seastar::future<> set_myaddrs(const entity_addrvec_t& addrs) {
-    my_addrs = addrs;
-    return seastar::now();
-  }
+  virtual void set_myaddrs(const entity_addrvec_t& addrs) = 0;
   virtual bool set_addr_unknowns(const entity_addrvec_t &addrs) = 0;
 
   using bind_ertr = crimson::errorator<
index 7fd4dc273b055fd6eecaf485eb14295c6fb0ed4e..194a6b7b4d75fbce6003a78b8662b76db91eb7c2 100644 (file)
@@ -873,8 +873,7 @@ void ProtocolV2::execute_connecting()
                 make_error_code(crimson::net::error::bad_peer_address));
           }
           _my_addr_from_peer.set_type(entity_addr_t::TYPE_MSGR2);
-          return messenger.learned_addr(_my_addr_from_peer, conn);
-        }).then([this] {
+          messenger.learned_addr(_my_addr_from_peer, conn);
           return client_auth();
         }).then([this] {
           if (server_cookie == 0) {
@@ -1481,8 +1480,7 @@ void ProtocolV2::execute_accepting()
             throw std::system_error(
                 make_error_code(crimson::net::error::bad_peer_address));
           }
-          return messenger.learned_addr(_my_addr_from_peer, conn);
-        }).then([this] {
+          messenger.learned_addr(_my_addr_from_peer, conn);
           return server_auth();
         }).then([this] {
           return read_main_preamble();
index f41044c3afbf24bf5e43fb8be3241fc74159b63e..073a6fa3bdc209468dcdfdaa8c830cf990352371 100644 (file)
@@ -73,14 +73,13 @@ bool SocketMessenger::set_addr_unknowns(const entity_addrvec_t &addrs)
   return ret;
 }
 
-seastar::future<> SocketMessenger::set_myaddrs(const entity_addrvec_t& addrs)
+void SocketMessenger::set_myaddrs(const entity_addrvec_t& addrs)
 {
   assert(seastar::this_shard_id() == master_sid);
-  auto my_addrs = addrs;
+  my_addrs = addrs;
   for (auto& addr : my_addrs.v) {
     addr.nonce = nonce;
   }
-  return Messenger::set_myaddrs(my_addrs);
 }
 
 crimson::net::listen_ertr::future<>
@@ -88,7 +87,8 @@ SocketMessenger::do_listen(const entity_addrvec_t& addrs)
 {
   assert(seastar::this_shard_id() == master_sid);
   ceph_assert(addrs.front().get_family() == AF_INET);
-  return set_myaddrs(addrs).then([this] {
+  set_myaddrs(addrs);
+  return seastar::futurize_invoke([this] {
     if (!listener) {
       return FixedCPUServerSocket::create().then([this] (auto _listener) {
         listener = _listener;
@@ -301,7 +301,9 @@ static entity_addr_t choose_addr(
   }
 }
 
-seastar::future<> SocketMessenger::learned_addr(const entity_addr_t &peer_addr_for_me, const SocketConnection& conn)
+void SocketMessenger::learned_addr(
+    const entity_addr_t &peer_addr_for_me,
+    const SocketConnection& conn)
 {
   assert(seastar::this_shard_id() == master_sid);
   if (!need_addr) {
@@ -314,7 +316,7 @@ seastar::future<> SocketMessenger::learned_addr(const entity_addr_t &peer_addr_f
       throw std::system_error(
           make_error_code(crimson::net::error::bad_peer_address));
     }
-    return seastar::now();
+    return;
   }
 
   if (get_myaddr().get_type() == entity_addr_t::TYPE_NONE) {
@@ -323,10 +325,8 @@ seastar::future<> SocketMessenger::learned_addr(const entity_addr_t &peer_addr_f
     addr.set_type(entity_addr_t::TYPE_ANY);
     addr.set_port(0);
     need_addr = false;
-    return set_myaddrs(entity_addrvec_t{addr}
-    ).then([this, &conn] {
-      logger().info("{} learned myaddr={} (unbound)", conn, get_myaddr());
-    });
+    set_myaddrs(entity_addrvec_t{addr});
+    logger().info("{} learned myaddr={} (unbound)", conn, get_myaddr());
   } else {
     // Already bound
     if (!get_myaddr().is_any() &&
@@ -347,10 +347,8 @@ seastar::future<> SocketMessenger::learned_addr(const entity_addr_t &peer_addr_f
       addr.set_type(get_myaddr().get_type());
       addr.set_port(get_myaddr().get_port());
       need_addr = false;
-      return set_myaddrs(entity_addrvec_t{addr}
-      ).then([this, &conn] {
-        logger().info("{} learned myaddr={} (blank IP)", conn, get_myaddr());
-      });
+      set_myaddrs(entity_addrvec_t{addr});
+      logger().info("{} learned myaddr={} (blank IP)", conn, get_myaddr());
     } else if (!get_myaddr().is_same_host(peer_addr_for_me)) {
       logger().warn("{} peer_addr_for_me {} IP doesn't match myaddr {}",
                     conn, peer_addr_for_me, get_myaddr());
@@ -358,7 +356,6 @@ seastar::future<> SocketMessenger::learned_addr(const entity_addr_t &peer_addr_f
           make_error_code(crimson::net::error::bad_peer_address));
     } else {
       need_addr = false;
-      return seastar::now();
     }
   }
 }
index accab32a99829671fac05685d301c68486b879da..e53fa6d7bb3cf1a2552a34e7c6c7b1bfb0c33218 100644 (file)
@@ -61,7 +61,7 @@ class SocketMessenger final : public Messenger {
                   uint32_t nonce);
   ~SocketMessenger() override;
 
-  seastar::future<> set_myaddrs(const entity_addrvec_t& addr) override;
+  void set_myaddrs(const entity_addrvec_t& addr) override;
 
   bool set_addr_unknowns(const entity_addrvec_t &addr) override;
   // Messenger interfaces are assumed to be called from its own shard, but its
@@ -111,8 +111,9 @@ class SocketMessenger final : public Messenger {
 
  public:
   seastar::future<uint32_t> get_global_seq(uint32_t old=0);
-  seastar::future<> learned_addr(const entity_addr_t &peer_addr_for_me,
-                                 const SocketConnection& conn);
+
+  void learned_addr(const entity_addr_t &peer_addr_for_me,
+                    const SocketConnection& conn);
 
   SocketConnectionRef lookup_conn(const entity_addr_t& addr);
   void accept_conn(SocketConnectionRef);
@@ -121,6 +122,7 @@ class SocketMessenger final : public Messenger {
   void unregister_conn(SocketConnectionRef);
   void closing_conn(SocketConnectionRef);
   void closed_conn(SocketConnectionRef);
+
   seastar::shard_id shard_id() const {
     assert(seastar::this_shard_id() == master_sid);
     return master_sid;
index 8653a85bdb781f8df362e779eaa4e3a428c6f68e..47d728b39af833139f97dc6a4d5bf4b88e64633f 100644 (file)
@@ -444,11 +444,8 @@ seastar::future<> OSD::start()
         replace_unknown_addrs(cluster_msgr->get_myaddrs(),
                               public_msgr->get_myaddrs()); changed) {
       logger().debug("replacing unkwnown addrs of cluster messenger");
-      return cluster_msgr->set_myaddrs(addrs);
-    } else {
-      return seastar::now();
+      cluster_msgr->set_myaddrs(addrs);
     }
-  }).then([this] {
     return heartbeat->start(pick_addresses(CEPH_PICK_ADDRESS_PUBLIC),
                             pick_addresses(CEPH_PICK_ADDRESS_CLUSTER));
   }).then([this] {