From: Sage Weil Date: Tue, 16 Jul 2013 00:16:23 +0000 (-0700) Subject: msgr: close accepting_pipes from mark_down_all() X-Git-Tag: v0.61.8~23^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1ed51ad535612d5c444a3cc35a331f5e6a68ce30;p=ceph.git msgr: close accepting_pipes from mark_down_all() We need to catch these pipes too, particularly when doing a rebind(), to avoid them leaking through. Signed-off-by: Sage Weil (cherry picked from commit 687fe888b32ac9d41595348dfc82111c8dbf2fcb) --- diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index 09bbb79ec92..82f8a508a64 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -556,6 +556,17 @@ void SimpleMessenger::mark_down_all() { ldout(cct,1) << "mark_down_all" << dendl; lock.Lock(); + for (set::iterator q = accepting_pipes.begin(); q != accepting_pipes.end(); ++q) { + Pipe *p = *q; + ldout(cct,5) << "mark_down_all accepting_pipe " << p << dendl; + p->pipe_lock.Lock(); + p->stop(); + if (p->connection_state) + p->connection_state->clear_pipe(p); + p->pipe_lock.Unlock(); + } + accepting_pipes.clear(); + while (!rank_pipe.empty()) { hash_map::iterator it = rank_pipe.begin(); Pipe *p = it->second;