From 9cee89bbdd1d89d2fe72c8d73fc0c18db515198a Mon Sep 17 00:00:00 2001 From: BJ Lougee Date: Mon, 13 Apr 2015 11:24:38 -0500 Subject: [PATCH] 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 (cherry picked from commit 27ed729c1088133400aa072eeca9e125942f2d94) --- src/mon/PGMap.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index a0473df98d2d8..2be6693a89169 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -983,7 +983,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]; @@ -999,7 +999,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]; @@ -1015,7 +1015,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]; -- 2.39.5