]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Check that delta_sum.stats.sum.num_object_copies and delta_sum.stats.sum.num_object... 4350/head
authorBJ Lougee <almightybeeij@gmail.com>
Mon, 13 Apr 2015 16:24:38 +0000 (11:24 -0500)
committerBJ Lougee <almightybeeij@gmail.com>
Mon, 13 Apr 2015 16:24:38 +0000 (11:24 -0500)
This fixes division by zero.

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

src/mon/PGMap.cc

index 60fb649c9765e3c933047b2eff046c9d5be4f38a..f9e85578c8bf65040ac5ba280089fb6c15f06445 100644 (file)
@@ -982,7 +982,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];
@@ -998,7 +998,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];
@@ -1014,7 +1014,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];