]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: don't set last_osd_report when the pg stats msg is ignored 12975/head
authorZhiqiang Wang <zhiqiang@xsky.com>
Wed, 14 Sep 2016 10:43:41 +0000 (06:43 -0400)
committerZhiqiang Wang <zhiqiang@xsky.com>
Wed, 18 Jan 2017 09:10:17 +0000 (17:10 +0800)
In some cases, this may lead to mon wrongly marking an osd down
because of no pg stats after a specified time period.

Signed-off-by: Zhiqiang Wang <zhiqiang@xsky.com>
src/mon/PGMonitor.cc

index f83a9241376123aabb18a8e580a3da949cd907d3..f604b6ffa1c3a1514ff03a299cab67f8827ac290 100644 (file)
@@ -772,14 +772,14 @@ bool PGMonitor::prepare_pg_stats(MonOpRequestRef op)
     return false;
   }
 
-  last_osd_report[from] = ceph_clock_now();
-
   if (!stats->get_orig_source().is_osd() ||
       !mon->osdmon()->osdmap.is_up(from) ||
       stats->get_orig_source_inst() != mon->osdmon()->osdmap.get_inst(from)) {
     dout(1) << " ignoring stats from non-active osd." << dendl;
     return false;
   }
+      
+  last_osd_report[from] = ceph_clock_now();
 
   if (!pg_stats_have_changed(from, stats)) {
     dout(10) << " message contains no new osd|pg stats" << dendl;