From: BJ Lougee Date: Mon, 13 Apr 2015 16:24:38 +0000 (-0500) Subject: Check that delta_sum.stats.sum.num_object_copies and delta_sum.stats.sum.num_object... X-Git-Tag: v9.0.1~140^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F4350%2Fhead;p=ceph.git Check that delta_sum.stats.sum.num_object_copies and delta_sum.stats.sum.num_object are greater than zero This fixes division by zero. Signed-off-by BJ Lougee --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 60fb649c9765..f9e85578c8bf 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -982,7 +982,7 @@ void PGMap::print_osd_blocked_by_stats(std::ostream *ss) const void PGMap::recovery_summary(Formatter *f, list *psl, const pool_stat_t& delta_sum) const { - if (delta_sum.stats.sum.num_objects_degraded) { + if (delta_sum.stats.sum.num_objects_degraded && delta_sum.stats.sum.num_object_copies > 0) { double pc = (double)delta_sum.stats.sum.num_objects_degraded / (double)delta_sum.stats.sum.num_object_copies * (double)100.0; char b[20]; @@ -998,7 +998,7 @@ void PGMap::recovery_summary(Formatter *f, list *psl, psl->push_back(ss.str()); } } - if (delta_sum.stats.sum.num_objects_misplaced) { + if (delta_sum.stats.sum.num_objects_misplaced && delta_sum.stats.sum.num_object_copies > 0) { double pc = (double)delta_sum.stats.sum.num_objects_misplaced / (double)delta_sum.stats.sum.num_object_copies * (double)100.0; char b[20]; @@ -1014,7 +1014,7 @@ void PGMap::recovery_summary(Formatter *f, list *psl, psl->push_back(ss.str()); } } - if (delta_sum.stats.sum.num_objects_unfound) { + if (delta_sum.stats.sum.num_objects_unfound && delta_sum.stats.sum.num_objects) { double pc = (double)delta_sum.stats.sum.num_objects_unfound / (double)delta_sum.stats.sum.num_objects * (double)100.0; char b[20];