From: Patrick Donnelly Date: Sat, 22 Oct 2016 22:47:03 +0000 (-0400) Subject: mds: check if down mds is known X-Git-Tag: v10.2.6~36^2~10^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=54d6c1dd1c5a7ea2d34f0c0986d9b422a67b6f2d;p=ceph.git mds: check if down mds is known This avoids an assertion failure where an MDS receives an mdsmap that causes it to enter up:replay and also see another MDS go down. Fixes: http://tracker.ceph.com/issues/17670 Signed-off-by: Patrick Donnelly (cherry picked from commit 99a21133cd3133088e3977d46aab7120524eb350) --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 19a584a65ccc..76b4662f8a64 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -1556,7 +1556,7 @@ void MDSRankDispatcher::handle_mds_map( oldmap->get_down_mds_set(&olddown); mdsmap->get_down_mds_set(&down); for (set::iterator p = down.begin(); p != down.end(); ++p) { - if (olddown.count(*p) == 0) { + if (oldmap->have_inst(*p) && olddown.count(*p) == 0) { messenger->mark_down(oldmap->get_inst(*p).addr); handle_mds_failure(*p); }