]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson: switch try_bind() to bind(). 43106/head
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 9 Sep 2021 06:16:09 +0000 (06:16 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 14 Sep 2021 10:01:35 +0000 (10:01 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/net/SocketMessenger.h
src/crimson/osd/heartbeat.cc
src/crimson/osd/osd.cc

index 74bcac45494e5b1eb3c02a66def7412ed1f16721..32e5988aa2a13e231e9f0f15db7b34262cf06cda 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "crimson/net/chained_dispatchers.h"
 #include "Messenger.h"
+#include "Socket.h"
 #include "SocketConnection.h"
 
 namespace crimson::net {
@@ -49,6 +50,10 @@ class SocketMessenger final : public Messenger {
   bool started = false;
 
   listen_ertr::future<> do_listen(const entity_addrvec_t& addr);
+  /// try to bind to the first unused port of given address
+  bind_ertr::future<> try_bind(const entity_addrvec_t& addr,
+                               uint32_t min_port, uint32_t max_port);
+
 
  public:
   SocketMessenger(const entity_name_t& myname,
@@ -62,9 +67,6 @@ class SocketMessenger final : public Messenger {
   // behavior should be symmetric when called from any shard.
   bind_ertr::future<> bind(const entity_addrvec_t& addr) override;
 
-  bind_ertr::future<> try_bind(const entity_addrvec_t& addr,
-                               uint32_t min_port, uint32_t max_port) override;
-
   seastar::future<> start(const dispatchers_t& dispatchers) override;
 
   ConnectionRef connect(const entity_addr_t& peer_addr,
index 2ddeaa9cf1204643f845b28f7c3fed3ce4473457..dc9669e016ffa7fb66659239599c0ce5309064a9 100644 (file)
@@ -73,14 +73,11 @@ seastar::future<>
 Heartbeat::start_messenger(crimson::net::Messenger& msgr,
                            const entity_addrvec_t& addrs)
 {
-  return msgr.try_bind(addrs,
-                       local_conf()->ms_bind_port_min,
-                       local_conf()->ms_bind_port_max)
-  .safe_then([this, &msgr]() mutable {
+  return msgr.bind(addrs).safe_then([this, &msgr]() mutable {
     return msgr.start({this});
   }, crimson::net::Messenger::bind_ertr::all_same_way(
       [] (const std::error_code& e) {
-    logger().error("heartbeat messenger try_bind(): address range is unavailable.");
+    logger().error("heartbeat messenger bind(): address range is unavailable.");
     ceph_abort();
   }));
 }
index a7e0cbd14993458579edc9e384247a01af8b2bc4..7f82fa26205e25584f80cf077484df2f5ee2d00e 100644 (file)
@@ -298,24 +298,20 @@ seastar::future<> OSD::start()
 
     crimson::net::dispatchers_t dispatchers{this, monc.get(), mgrc.get()};
     return seastar::when_all_succeed(
-      cluster_msgr->try_bind(pick_addresses(CEPH_PICK_ADDRESS_CLUSTER),
-                             local_conf()->ms_bind_port_min,
-                             local_conf()->ms_bind_port_max)
+      cluster_msgr->bind(pick_addresses(CEPH_PICK_ADDRESS_CLUSTER))
         .safe_then([this, dispatchers]() mutable {
          return cluster_msgr->start(dispatchers);
         }, crimson::net::Messenger::bind_ertr::all_same_way(
             [] (const std::error_code& e) {
-          logger().error("cluster messenger try_bind(): address range is unavailable.");
+          logger().error("cluster messenger bind(): address range is unavailable.");
           ceph_abort();
         })),
-      public_msgr->try_bind(pick_addresses(CEPH_PICK_ADDRESS_PUBLIC),
-                            local_conf()->ms_bind_port_min,
-                            local_conf()->ms_bind_port_max)
+      public_msgr->bind(pick_addresses(CEPH_PICK_ADDRESS_PUBLIC))
         .safe_then([this, dispatchers]() mutable {
          return public_msgr->start(dispatchers);
         }, crimson::net::Messenger::bind_ertr::all_same_way(
             [] (const std::error_code& e) {
-          logger().error("public messenger try_bind(): address range is unavailable.");
+          logger().error("public messenger bind(): address range is unavailable.");
           ceph_abort();
         })));
   }).then_unpack([this] {