mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
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 <sage@inktank.com>
This commit is contained in:
parent
dd4addef2d
commit
687fe888b3
@ -561,6 +561,18 @@ void SimpleMessenger::mark_down_all()
|
||||
{
|
||||
ldout(cct,1) << "mark_down_all" << dendl;
|
||||
lock.Lock();
|
||||
for (set<Pipe*>::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();
|
||||
ConnectionRef con = p->connection_state;
|
||||
if (con && con->clear_pipe(p))
|
||||
dispatch_queue.queue_reset(con.get());
|
||||
p->pipe_lock.Unlock();
|
||||
}
|
||||
accepting_pipes.clear();
|
||||
|
||||
while (!rank_pipe.empty()) {
|
||||
hash_map<entity_addr_t,Pipe*>::iterator it = rank_pipe.begin();
|
||||
Pipe *p = it->second;
|
||||
|
Loading…
Reference in New Issue
Block a user