From: John Spray Date: Thu, 26 Mar 2015 12:52:36 +0000 (+0000) Subject: mds: update peer failure response to account for damaged X-Git-Tag: v9.0.0~77^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3b2a0917e8e18f8132145c460636705130ef57a6;p=ceph.git mds: update peer failure response to account for damaged ...by calling get_down_mds_set instead of get_failed_mds_set. Also remove a redundant if(true) around this region. Signed-off-by: John Spray --- diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 8da5d1e294fd..10308e668a97 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -1764,28 +1764,33 @@ void MDS::handle_mds_map(MMDSMap *m) } // did someone fail? - if (true) { - // new failed? - set oldfailed, failed; - oldmap->get_failed_mds_set(oldfailed); - mdsmap->get_failed_mds_set(failed); - for (set::iterator p = failed.begin(); p != failed.end(); ++p) - if (oldfailed.count(*p) == 0) { - messenger->mark_down(oldmap->get_inst(*p).addr); - handle_mds_failure(*p); + // new down? + { + set olddown, down; + 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) { + messenger->mark_down(oldmap->get_inst(*p).addr); + handle_mds_failure(*p); } - - // or down then up? - // did their addr/inst change? + } + } + + // did someone fail? + // did their addr/inst change? + { set up; mdsmap->get_up_mds_set(up); - for (set::iterator p = up.begin(); p != up.end(); ++p) + for (set::iterator p = up.begin(); p != up.end(); ++p) { if (oldmap->have_inst(*p) && - oldmap->get_inst(*p) != mdsmap->get_inst(*p)) { - messenger->mark_down(oldmap->get_inst(*p).addr); - handle_mds_failure(*p); + oldmap->get_inst(*p) != mdsmap->get_inst(*p)) { + messenger->mark_down(oldmap->get_inst(*p).addr); + handle_mds_failure(*p); } + } } + if (is_clientreplay() || is_active() || is_stopping()) { // did anyone stop? set oldstopped, stopped;