From 48c3da005f7d5259b64c64eb80bc1edb5ce99865 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 15 Dec 2008 14:33:00 -0800 Subject: [PATCH] mon: send mdsmap on beacon from mds not in the map This happens when an mds goes laggy and is marked down by the monitor. --- src/mon/MDSMonitor.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 30f5ee183fd5..d631e78055b9 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -172,6 +172,15 @@ bool MDSMonitor::preprocess_beacon(MMDSBeacon *m) if (!mon->is_leader()) return false; + // booted, but not in map? + if (state != MDSMap::STATE_BOOT && + pending_mdsmap.get_addr_rank(addr) < 0 && + !pending_mdsmap.is_standby(addr)) { + dout(7) << "mds_beacon " << *m << " is not in mdsmap" << dendl; + send_latest(m->get_orig_source_inst()); + return true; + } + // can i handle this query without a map update? // no longer laggy? -- 2.47.3