]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/net: throw bad_peer_address when reconnect address doesn't match
authorYingxin Cheng <yingxin.cheng@intel.com>
Thu, 8 Aug 2019 09:14:47 +0000 (17:14 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Mon, 12 Aug 2019 09:22:45 +0000 (17:22 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/net/ProtocolV2.cc

index 2cb7b1352c3d5a7298a2a5771d03d87cad0f3b92..70c5e82ba25b78c69c784c3911a7188ae874fb05 100644 (file)
@@ -1337,13 +1337,14 @@ ProtocolV2::server_reconnect()
                    reconnect.msg_seq());
 
     // can peer_addrs be changed on-the-fly?
+    // TODO: change peer_addr to entity_addrvec_t
     if (conn.peer_addr != reconnect.addrs().front()) {
-      logger().error("{} peer identifies as {}, while conn.peer_addr={}",
+      logger().error("{} peer identifies as {}, while conn.peer_addr={},"
+                     " reconnect failed",
                      conn, reconnect.addrs().front(), conn.peer_addr);
-      ceph_assert(false);
+      throw std::system_error(
+          make_error_code(ceph::net::error::bad_peer_address));
     }
-    // TODO: change peer_addr to entity_addrvec_t
-    ceph_assert(conn.peer_addr == conn.target_addr);
     peer_global_seq = reconnect.global_seq();
 
     SocketConnectionRef existing_conn = messenger.lookup_conn(conn.peer_addr);