]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: PGMonitor: fix division by zero on stats dump
authorJoao Eduardo Luis <joao@redhat.com>
Fri, 16 Jan 2015 18:12:42 +0000 (18:12 +0000)
committerLoic Dachary <ldachary@redhat.com>
Tue, 17 Mar 2015 09:55:40 +0000 (10:55 +0100)
Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 50547dc3c00b7556e26b9a44ec68640c5c3a2384)

src/mon/PGMonitor.cc

index f197b3a52c0608bd8a76f3821e45c8543215cc28..d8d64c54814ae866cf051e5312e1f76f1df4e6db 100644 (file)
@@ -1248,7 +1248,10 @@ void PGMonitor::dump_object_stat_sum(TextTable &tbl, Formatter *f,
   } else {
     tbl << stringify(si_t(sum.num_bytes));
     int64_t kb_used = SHIFT_ROUND_UP(sum.num_bytes, 10);
-    tbl << percentify(((float)kb_used / pg_map.osd_sum.kb)*100);
+    float used = 0.0;
+    if (pg_map.osd_sum.kb > 0)
+      used = (float)kb_used / pg_map.osd_sum.kb;
+    tbl << percentify(used*100);
     tbl << si_t(avail);
     tbl << sum.num_objects;
     if (verbose) {
@@ -1420,7 +1423,11 @@ void PGMonitor::dump_fs_stats(stringstream &ss, Formatter *f, bool verbose)
     tbl << stringify(si_t(pg_map.osd_sum.kb*1024))
         << stringify(si_t(pg_map.osd_sum.kb_avail*1024))
         << stringify(si_t(pg_map.osd_sum.kb_used*1024));
-    tbl << percentify(((float)pg_map.osd_sum.kb_used / pg_map.osd_sum.kb)*100);
+    float used = 0.0;
+    if (pg_map.osd_sum.kb > 0) {
+      used = ((float)pg_map.osd_sum.kb_used / pg_map.osd_sum.kb);
+    }
+    tbl << percentify(used*100);
     if (verbose) {
       tbl << stringify(si_t(pg_map.pg_sum.stats.sum.num_objects));
     }