From: Sage Weil Date: Fri, 14 Dec 2018 21:10:50 +0000 (-0600) Subject: msg/async: make loopback detect when sending to one of our many addrs X-Git-Tag: v14.1.0~484^2~52 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=76ccf140ed06ed1bd562168774dc06e29082f458;p=ceph.git msg/async: make loopback detect when sending to one of our many addrs Drop the assert just because it's inefficient and not necessary. Signed-off-by: Sage Weil --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index b67c9bc4e7c..765833308ad 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -570,7 +570,6 @@ AsyncConnectionRef AsyncMessenger::create_connect( const entity_addrvec_t& addrs, int type) { ceph_assert(lock.is_locked()); - ceph_assert(addrs != *my_addrs); ldout(cct, 10) << __func__ << " " << addrs << ", creating connection and registering" << dendl; @@ -603,7 +602,9 @@ AsyncConnectionRef AsyncMessenger::create_connect( ConnectionRef AsyncMessenger::connect_to(int type, const entity_addrvec_t& addrs) { Mutex::Locker l(lock); - if (*my_addrs == addrs) { + if (*my_addrs == addrs || + (addrs.v.size() == 1 && + my_addrs->contains(addrs.front()))) { // local return local_connection; } @@ -673,7 +674,9 @@ void AsyncMessenger::submit_message(Message *m, AsyncConnectionRef con, } // local? - if (*my_addrs == dest_addrs) { + if (*my_addrs == dest_addrs || + (dest_addrs.v.size() == 1 && + my_addrs->contains(dest_addrs.front()))) { // local local_connection->send_message(m); return ;