From: Patrick Donnelly Date: Fri, 5 Apr 2019 23:04:14 +0000 (-0700) Subject: msg/async: dec active connections when marked down X-Git-Tag: v14.2.2~104^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a2568f2f56097c48f04b8247719c2e931cbcbcfb;p=ceph.git msg/async: dec active connections when marked down Otherwise, tests can't tell when a connection is stopped until it's eventually "lazily" deleted. This should be safe since the perf counter is manipulating an atomic value. Signed-off-by: Patrick Donnelly (cherry picked from commit d2d38ac858cb6d01b2744d2c0e3b6c0b532470d2) --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index f6bcaa9b794..4517cbaad5f 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -860,7 +860,6 @@ int AsyncMessenger::accept_conn(AsyncConnectionRef conn) // If conn already in, we will return 0 Mutex::Locker l(deleted_lock); if (deleted_conns.erase(existing)) { - existing->get_perf_counter()->dec(l_msgr_active_connections); conns.erase(it); } else if (conn != existing) { return -1; diff --git a/src/msg/async/AsyncMessenger.h b/src/msg/async/AsyncMessenger.h index f13e30c0b96..809a3df9c16 100644 --- a/src/msg/async/AsyncMessenger.h +++ b/src/msg/async/AsyncMessenger.h @@ -315,7 +315,6 @@ private: // lazy delete, see "deleted_conns" Mutex::Locker l(deleted_lock); if (deleted_conns.erase(p->second)) { - p->second->get_perf_counter()->dec(l_msgr_active_connections); conns.erase(p); return NULL; } @@ -403,6 +402,7 @@ public: void unregister_conn(AsyncConnectionRef conn) { Mutex::Locker l(deleted_lock); deleted_conns.insert(conn); + conn->get_perf_counter()->dec(l_msgr_active_connections); if (deleted_conns.size() >= ReapDeadConnectionThreshold) { local_worker->center.dispatch_event_external(reap_handler);