]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: check if down mds is known 11857/head
authorPatrick Donnelly <pdonnell@redhat.com>
Sat, 22 Oct 2016 22:47:03 +0000 (18:47 -0400)
committerLoic Dachary <ldachary@redhat.com>
Wed, 9 Nov 2016 12:58:06 +0000 (13:58 +0100)
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>
(cherry picked from commit 99a21133cd3133088e3977d46aab7120524eb350)

src/mds/MDSRank.cc

index 19a584a65ccc27bb5488681e0ea45763edbda21d..76b4662f8a64111ec6c3f5d4da6dd66b3cb81932 100644 (file)
@@ -1556,7 +1556,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);
       }