]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: check if down mds is known 11611/head
authorPatrick Donnelly <pdonnell@redhat.com>
Sat, 22 Oct 2016 22:47:03 +0000 (18:47 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Sat, 22 Oct 2016 22:47:03 +0000 (18:47 -0400)
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 <pdonnell@redhat.com>
src/mds/MDSRank.cc

index 33af04e36cd77bb305f5771a6ff8f0dd1ed8659d..c92f59f2717cf453d09bb703687afd8256a47bee 100644 (file)
@@ -1548,7 +1548,7 @@ void MDSRankDispatcher::handle_mds_map(
     oldmap->get_down_mds_set(&olddown);
     mdsmap->get_down_mds_set(&down);
     for (set<mds_rank_t>::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);
       }