From: Kefu Chai Date: Sun, 26 Feb 2017 16:18:09 +0000 (+0800) Subject: mon/MonClient: discard stray messages from non-acitve conns X-Git-Tag: v12.0.1~263^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c0f160066671e80e0d1c33fa2fe2894dd653e510;p=ceph.git mon/MonClient: discard stray messages from non-acitve conns Fixes: http://tracker.ceph.com/issues/19015 Signed-off-by: Kefu Chai --- diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 5bf131af694..644a0e48812 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -249,7 +249,9 @@ bool MonClient::ms_dispatch(Message *m) Mutex::Locker lock(monc_lock); if (_hunting()) { - if (!pending_cons.count(m->get_source_addr())) { + auto pending_con = pending_cons.find(m->get_source_addr()); + if (pending_con == pending_cons.end() || + pending_con->second.get_con() != m->get_connection()) { // ignore any messages outside hunting sessions ldout(cct, 10) << "discarding stray monitor message " << *m << dendl; m->put();