]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr: fix to apply changed mon_stat_smooth_intervals
authorYan Jun <yan.jun8@zte.com.cn>
Wed, 8 Aug 2018 06:35:38 +0000 (14:35 +0800)
committerYan Jun <yan.jun8@zte.com.cn>
Wed, 8 Aug 2018 06:35:38 +0000 (14:35 +0800)
While using config set or injectargs command to decrease
mon_stat_smooth_intervals, it didn't apply the new value.
this change fix it.

Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
src/mon/PGMap.cc

index 1c622625eb104d010ebbc7f5174f6b9b83d00e72..0c117e002db949c6609c22a6ca3cf817523213b2 100644 (file)
@@ -1120,7 +1120,7 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc)
     pg_sum_delta.stats.add(d.stats);
     auto smooth_intervals =
       cct ? cct->_conf.get_val<uint64_t>("mon_stat_smooth_intervals") : 1;
-    if (pg_sum_deltas.size() > smooth_intervals) {
+    while (pg_sum_deltas.size() > smooth_intervals) {
       pg_sum_delta.stats.sub(pg_sum_deltas.front().first.stats);
       stamp_delta -= pg_sum_deltas.front().second;
       pg_sum_deltas.pop_front();
@@ -1962,7 +1962,7 @@ void PGMap::update_delta(
     result_pool_delta->stats.add(d.stats);
   }
   size_t s = cct ? cct->_conf.get_val<uint64_t>("mon_stat_smooth_intervals") : 1;
-  if (delta_avg_list->size() > s) {
+  while (delta_avg_list->size() > s) {
     result_pool_delta->stats.sub(delta_avg_list->front().first.stats);
     *result_ts_delta -= delta_avg_list->front().second;
     delta_avg_list->pop_front();