From: Yingxin Cheng Date: Thu, 20 Oct 2022 07:02:12 +0000 (+0800) Subject: crimson/net: no futurized Messenger::set_myaddrs() X-Git-Tag: v18.1.0~967^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7f953d17375ce773f32baaad31f3c3543f8a6ae5;p=ceph.git crimson/net: no futurized Messenger::set_myaddrs() Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/net/Messenger.h b/src/crimson/net/Messenger.h index a34db2e42db3..615403d5aa30 100644 --- a/src/crimson/net/Messenger.h +++ b/src/crimson/net/Messenger.h @@ -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< diff --git a/src/crimson/net/ProtocolV2.cc b/src/crimson/net/ProtocolV2.cc index 7fd4dc273b05..194a6b7b4d75 100644 --- a/src/crimson/net/ProtocolV2.cc +++ b/src/crimson/net/ProtocolV2.cc @@ -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(); diff --git a/src/crimson/net/SocketMessenger.cc b/src/crimson/net/SocketMessenger.cc index f41044c3afbf..073a6fa3bdc2 100644 --- a/src/crimson/net/SocketMessenger.cc +++ b/src/crimson/net/SocketMessenger.cc @@ -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(); } } } diff --git a/src/crimson/net/SocketMessenger.h b/src/crimson/net/SocketMessenger.h index accab32a9982..e53fa6d7bb3c 100644 --- a/src/crimson/net/SocketMessenger.h +++ b/src/crimson/net/SocketMessenger.h @@ -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 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; diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 8653a85bdb78..47d728b39af8 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -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] {