]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Check that delta_sum.stats.sum.num_object_copies and delta_sum.stats.sum.num_object... 7180/head
authorBJ Lougee <almightybeeij@gmail.com>
Mon, 13 Apr 2015 16:24:38 +0000 (11:24 -0500)
committerLoic Dachary <ldachary@redhat.com>
Mon, 11 Jan 2016 10:27:15 +0000 (11:27 +0100)
This fixes division by zero.

Signed-off-by BJ Lougee <almightybeeij@gmail.com>

(cherry picked from commit 27ed729c1088133400aa072eeca9e125942f2d94)

src/mon/PGMap.cc

index a0473df98d2d8c53b2d676a51572e9df75c2fa4c..2be6693a89169e3bc8a7d80abdb4f190a55c3fcf 100644 (file)
@@ -983,7 +983,7 @@ void PGMap::print_osd_blocked_by_stats(std::ostream *ss) const
 void PGMap::recovery_summary(Formatter *f, list<string> *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<string> *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<string> *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];