diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 79b95049d09..fe7f528a855 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -651,6 +651,12 @@ bool PGMonitor::preprocess_pg_stats(MonOpRequestRef op) return true; } + if (stats->fsid != mon->monmap->fsid) { + dout(0) << __func__ << " drop message on fsid " << stats->fsid << " != " + << mon->monmap->fsid << " for " << *stats << dendl; + return true; + } + // First, just see if they need a new osdmap. But // only if they've had the map for a while. if (stats->had_map_for > 30.0 && @@ -1028,6 +1034,12 @@ bool PGMonitor::preprocess_command(MonOpRequestRef op) stringstream ss, ds; bool primary = false; + if (m->fsid != mon->monmap->fsid) { + dout(0) << __func__ << " drop message on fsid " << m->fsid << " != " + << mon->monmap->fsid << " for " << *m << dendl; + return true; + } + map cmdmap; if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) { // ss has reason for failure @@ -1351,6 +1363,11 @@ bool PGMonitor::prepare_command(MonOpRequestRef op) { op->mark_pgmon_event(__func__); MMonCommand *m = static_cast(op->get_req()); + if (m->fsid != mon->monmap->fsid) { + dout(0) << __func__ << " drop message on fsid " << m->fsid << " != " + << mon->monmap->fsid << " for " << *m << dendl; + return true; + } stringstream ss; pg_t pgid; epoch_t epoch = mon->osdmon()->osdmap.get_epoch();