]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: allow triggering prunes from tick()
authorJoao Eduardo Luis <joao@suse.de>
Fri, 24 Nov 2017 22:46:04 +0000 (22:46 +0000)
committerJoao Eduardo Luis <joao@suse.de>
Fri, 6 Apr 2018 03:18:22 +0000 (04:18 +0100)
Signed-off-by: Joao Eduardo Luis <joao@suse.de>
src/mon/OSDMonitor.cc

index 4e8f08d57d42082849ad2d8e496224f755f34f3a..2bb8f1a878281c159980e4effe79b86d0935da91 100644 (file)
@@ -3881,6 +3881,9 @@ void OSDMonitor::tick()
 
   dout(10) << osdmap << dendl;
 
+  // always update osdmap manifest, regardless of being the leader.
+  load_osdmap_manifest();
+
   if (!mon->is_leader()) return;
 
   bool do_propose = false;
@@ -3891,8 +3894,16 @@ void OSDMonitor::tick()
   }
 
   // mark osds down?
-  if (check_failures(now))
+  if (check_failures(now)) {
+    do_propose = true;
+  }
+
+  // Force a proposal if we need to prune; pruning is performed on
+  // ``encode_pending()``, hence why we need to regularly trigger a proposal
+  // even if there's nothing going on.
+  if (is_prune_enabled() && should_prune()) {
     do_propose = true;
+  }
 
   // mark down osds out?