From: Sage Weil Date: Fri, 1 Jun 2018 19:51:05 +0000 (-0500) Subject: msg/Connection: peer_addr -> peer_addrs X-Git-Tag: v14.0.1~951^2~31 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6d742a35ffa47b981606047fc44c848c78e537ea;p=ceph.git msg/Connection: peer_addr -> peer_addrs Signed-off-by: Sage Weil --- diff --git a/src/mds/MDSDaemon.cc b/src/mds/MDSDaemon.cc index 30d3062f2f2f4..f34e1a418b84b 100644 --- a/src/mds/MDSDaemon.cc +++ b/src/mds/MDSDaemon.cc @@ -602,7 +602,7 @@ void MDSDaemon::handle_command(MCommand *m) if (!session->auth_caps.allow_all()) { dout(1) << __func__ << ": received command from client without `tell` capability: " - << m->get_connection()->peer_addr << dendl; + << m->get_connection()->peer_addrs << dendl; ss << "permission denied"; r = -EPERM; diff --git a/src/msg/Connection.h b/src/msg/Connection.h index 13d99d7359530..606aa046f36f5 100644 --- a/src/msg/Connection.h +++ b/src/msg/Connection.h @@ -43,7 +43,7 @@ struct Connection : public RefCountedObject { Messenger *msgr; RefCountedPtr priv; int peer_type; - entity_addr_t peer_addr; + entity_addrvec_t peer_addrs; utime_t last_keepalive, last_keepalive_ack; private: uint64_t features; @@ -157,11 +157,16 @@ public: bool peer_is_osd() const { return peer_type == CEPH_ENTITY_TYPE_OSD; } bool peer_is_client() const { return peer_type == CEPH_ENTITY_TYPE_CLIENT; } - const entity_addr_t& get_peer_addr() const { return peer_addr; } - entity_addrvec_t get_peer_addrs() const { - return entity_addrvec_t(peer_addr); + entity_addr_t get_peer_addr() const { + return peer_addrs.front(); } - void set_peer_addr(const entity_addr_t& a) { peer_addr = a; } + const entity_addrvec_t& get_peer_addrs() const { + return peer_addrs; + } + void set_peer_addr(const entity_addr_t& a) { + peer_addrs = entity_addrvec_t(a); + } + void set_peer_addrs(const entity_addrvec_t& av) { peer_addrs = av; } uint64_t get_features() const { return features; } bool has_feature(uint64_t f) const { return features & f; } diff --git a/src/msg/async/AsyncConnection.cc b/src/msg/async/AsyncConnection.cc index 27b7094f0b6a2..e1d9e287db96b 100644 --- a/src/msg/async/AsyncConnection.cc +++ b/src/msg/async/AsyncConnection.cc @@ -33,7 +33,8 @@ #undef dout_prefix #define dout_prefix _conn_prefix(_dout) ostream& AsyncConnection::_conn_prefix(std::ostream *_dout) { - return *_dout << "-- " << async_msgr->get_myaddr() << " >> " << peer_addr << " conn(" << this + return *_dout << "-- " << async_msgr->get_myaddr() << " >> " + << peer_addrs << " conn(" << this << " :" << port << " s=" << get_state_name(state) << " pgs=" << peer_global_seq @@ -954,15 +955,16 @@ ssize_t AsyncConnection::_process_connection() } ldout(async_msgr->cct, 20) << __func__ << " connect read peer addr " << paddr << " on socket " << cs.fd() << dendl; - if (peer_addr != paddr) { - if (paddr.is_blank_ip() && peer_addr.get_port() == paddr.get_port() && - peer_addr.get_nonce() == paddr.get_nonce()) { + if (peer_addrs.legacy_addr() != paddr) { + if (paddr.is_blank_ip() && + peer_addrs.legacy_addr().get_port() == paddr.get_port() && + peer_addrs.legacy_addr().get_nonce() == paddr.get_nonce()) { ldout(async_msgr->cct, 0) << __func__ << " connect claims to be " << paddr - << " not " << peer_addr + << " not " << peer_addrs << " - presumably this is the same node!" << dendl; } else { ldout(async_msgr->cct, 10) << __func__ << " connect claims to be " - << paddr << " not " << peer_addr << dendl; + << paddr << " not " << peer_addrs << dendl; goto fail; } } @@ -1508,7 +1510,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis ldout(async_msgr->cct, 10) << __func__ << " accept setting up session_security." << dendl; // existing? - AsyncConnectionRef existing = async_msgr->lookup_conn(peer_addr); + AsyncConnectionRef existing = async_msgr->lookup_conn(peer_addrs.legacy_addr()); inject_delay(); @@ -1608,7 +1610,8 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis } // connection race? - if (peer_addr < async_msgr->get_myaddr() || existing->policy.server) { + if (peer_addrs.legacy_addr() < async_msgr->get_myaddrs().legacy_addr() || + existing->policy.server) { // incoming wins ldout(async_msgr->cct, 10) << __func__ << " accept connection race, existing " << existing << ".cseq " << existing->connect_seq << " == " << connect.connect_seq @@ -1619,7 +1622,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis ldout(async_msgr->cct,10) << __func__ << " accept connection race, existing " << existing << ".cseq " << existing->connect_seq << " == " << connect.connect_seq << ", sending WAIT" << dendl; - assert(peer_addr > async_msgr->get_myaddr()); + assert(peer_addrs.legacy_addr() > async_msgr->get_myaddrs().legacy_addr()); existing->lock.unlock(); return _reply_accept(CEPH_MSGR_TAG_WAIT, connect, reply, authorizer_reply); } @@ -1818,7 +1821,7 @@ ssize_t AsyncConnection::handle_connect_msg(ceph_msg_connect &connect, bufferlis lock.lock(); replacing = false; if (r < 0) { - ldout(async_msgr->cct, 1) << __func__ << " existing race replacing process for addr=" << peer_addr + ldout(async_msgr->cct, 1) << __func__ << " existing race replacing process for addr=" << peer_addrs << " just fail later one(this)" << dendl; goto fail_registered; } diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index dfa0bee4bed16..2c2d83ef35810 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -744,7 +744,7 @@ int AsyncMessenger::reap_dead() auto it = deleted_conns.begin(); AsyncConnectionRef p = *it; ldout(cct, 5) << __func__ << " delete " << p << dendl; - auto conns_it = conns.find(p->peer_addr); + auto conns_it = conns.find(p->peer_addrs.legacy_addr()); if (conns_it != conns.end() && conns_it->second == p) conns.erase(conns_it); accepting_conns.erase(p); diff --git a/src/msg/async/AsyncMessenger.h b/src/msg/async/AsyncMessenger.h index c517f3fdb4342..5ddc2bde9e190 100644 --- a/src/msg/async/AsyncMessenger.h +++ b/src/msg/async/AsyncMessenger.h @@ -319,7 +319,7 @@ private: void _init_local_connection() { assert(lock.is_locked()); - local_connection->peer_addr = my_addr; + local_connection->peer_addrs = entity_addrvec_t(my_addr); local_connection->peer_type = my_name.type(); local_connection->set_features(CEPH_FEATURES_ALL); ms_deliver_handle_fast_connect(local_connection.get()); @@ -346,7 +346,7 @@ public: int accept_conn(AsyncConnectionRef conn) { Mutex::Locker l(lock); - auto it = conns.find(conn->peer_addr); + auto it = conns.find(conn->peer_addrs.legacy_addr()); if (it != conns.end()) { AsyncConnectionRef existing = it->second; @@ -360,7 +360,7 @@ public: return -1; } } - conns[conn->peer_addr] = conn; + conns[conn->peer_addrs.legacy_addr()] = conn; conn->get_perf_counter()->inc(l_msgr_active_connections); accepting_conns.erase(conn); return 0; diff --git a/src/msg/simple/SimpleMessenger.cc b/src/msg/simple/SimpleMessenger.cc index 36a0ee371a1c0..8667302443d78 100644 --- a/src/msg/simple/SimpleMessenger.cc +++ b/src/msg/simple/SimpleMessenger.cc @@ -748,7 +748,7 @@ void SimpleMessenger::learned_addr(const entity_addr_t &peer_addr_for_me) void SimpleMessenger::init_local_connection() { - local_connection->peer_addr = my_addr; + local_connection->peer_addrs = entity_addrvec_t(my_addr); local_connection->peer_type = my_name.type(); local_connection->set_features(CEPH_FEATURES_ALL); ms_deliver_handle_fast_connect(local_connection.get());