]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: ignore pgtemp messages from down osds
authorSage Weil <sage@inktank.com>
Wed, 25 Jul 2012 03:18:01 +0000 (20:18 -0700)
committerSage Weil <sage@inktank.com>
Wed, 25 Jul 2012 03:18:01 +0000 (20:18 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mon/OSDMonitor.cc

index 1d998f3d5c44c3b6eafa3636cc0da7a649c311f8..f3a784cbda9ed764b6492da11126e186d01dc0ba 100644 (file)
@@ -941,6 +941,7 @@ bool OSDMonitor::preprocess_pgtemp(MOSDPGTemp *m)
 {
   dout(10) << "preprocess_pgtemp " << *m << dendl;
   vector<int> empty;
+  int from = m->get_orig_source().num();
 
   // check caps
   MonSession *session = m->get_session();
@@ -952,6 +953,12 @@ bool OSDMonitor::preprocess_pgtemp(MOSDPGTemp *m)
     goto ignore;
   }
 
+  if (!osdmap.is_up(from) ||
+      osdmap.get_inst(from) != m->get_orig_source_inst()) {
+    dout(7) << "ignoring pgtemp message from down " << m->get_orig_source_inst() << dendl;
+    goto ignore;
+  }
+
   for (map<pg_t,vector<int> >::iterator p = m->pg_temp.begin(); p != m->pg_temp.end(); p++) {
     dout(20) << " " << p->first
             << (osdmap.pg_temp->count(p->first) ? (*osdmap.pg_temp)[p->first] : empty)