From b311e7c36273efae39aa2602c1f8bd90d39e5975 Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Mon, 19 Jan 2015 18:49:15 +0000 Subject: [PATCH] mon: PGMonitor: skip zeroed osd stats on get_rule_avail() Fixes: #10257 Signed-off-by: Joao Eduardo Luis --- src/mon/PGMonitor.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index ba4ba45f8a187..dc310df0a4d5b 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -1295,6 +1295,11 @@ int64_t PGMonitor::get_rule_avail(OSDMap& osdmap, int ruleno) for (map::iterator p = wm.begin(); p != wm.end(); ++p) { ceph::unordered_map::const_iterator osd_info = pg_map.osd_stat.find(p->first); if (osd_info != pg_map.osd_stat.end()) { + if (osd_info->second.kb == 0) { + // osd must be out, hence its stats have been zeroed + // (unless we somehow managed to have a disk with size 0...) + continue; + } int64_t proj = (float)((osd_info->second).kb_avail * 1024ull) / (double)p->second; if (min < 0 || proj < min) -- 2.39.5