From: Sage Weil Date: Sat, 7 Feb 2015 19:13:52 +0000 (-0800) Subject: mon/OSDMonitor: fix nan on 'osd df' variance X-Git-Tag: v0.93~53^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ab6c65a3ec3003a763259380bd486fb9b903acc6;p=ceph.git mon/OSDMonitor: fix nan on 'osd df' variance Fixes: half of #10695 Signed-off-by: Sage Weil --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index f9e2f2d87fb8..18d1ba6dd052 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -619,11 +619,14 @@ public: osdmap(osdmap_), pgm(pgm_), tree(tree_), - average_util(100.0 * (double)pgm->osd_sum.kb_used / (double)pgm->osd_sum.kb), + average_util(0), min_var(-1), max_var(-1), stddev(0), - sum(0) {} + sum(0) { + if (pgm->osd_sum.kb) + average_util = 100.0 * (double)pgm->osd_sum.kb_used / (double)pgm->osd_sum.kb; + } protected: void dump_stray(F *f) { @@ -639,8 +642,9 @@ protected: float reweight = qi.is_bucket() ? -1 : osdmap->get_weightf(qi.id); int64_t kb = 0, kb_used = 0, kb_avail = 0; - double util = get_bucket_utilization(qi.id, kb, kb_used, kb_avail) ? - 100.0 * (double)kb_used / (double)kb : 0; + double util = 0; + if (get_bucket_utilization(qi.id, kb, kb_used, kb_avail) && kb > 0) + util = 100.0 * (double)kb_used / (double)kb; double var = 1.0; if (average_util) var = util / average_util;