]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: Fix %USED calculation bug. 19230/head
authorXiaoxi Chen <xiaoxchen@ebay.com>
Mon, 27 Nov 2017 05:51:58 +0000 (22:51 -0700)
committerKefu Chai <kchai@redhat.com>
Wed, 29 Nov 2017 08:18:40 +0000 (16:18 +0800)
Previous code forgot to multiple raw_used_ratio to calculate
used byte.

Fixes: http://tracker.ceph.com/issues/22247
Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
(cherry picked from commit d10c6c26f9ef7372e2c95da79d23b07ce5f4e0e5)

src/mon/PGMap.cc
src/test/mon/PGMap.cc

index 32fabdfce2029d9eb32c4c930a9ac586096dc857..6fcc3c0721afba4ba79cfc83ea15d6e2cffaeeab 100644 (file)
@@ -824,8 +824,9 @@ void PGMapDigest::dump_object_stat_sum(
     curr_object_copies_rate = (float)(sum.num_object_copies - sum.num_objects_degraded) / sum.num_object_copies;
 
   float used = 0.0;
+  // note avail passed in is raw_avail, calc raw_used here.
   if (avail) {
-    used = sum.num_bytes * curr_object_copies_rate;
+    used = sum.num_bytes * raw_used_rate * curr_object_copies_rate;
     used /= used + avail;
   } else if (sum.num_bytes) {
     used = 1.0;
index d7e8a18fe41c893ac5647100bbf8f87cfbd2a343..37648b9e52bd7f615ed08d429465abfe0d703369 100644 (file)
@@ -175,7 +175,7 @@ TEST(pgmap, dump_object_stat_sum_0)
   float copies_rate =
     (static_cast<float>(sum.num_object_copies - sum.num_objects_degraded) /
      sum.num_object_copies);
-  float used_bytes = sum.num_bytes * copies_rate;
+  float used_bytes = sum.num_bytes * copies_rate * pool.get_size();
   float used_percent = used_bytes / (used_bytes + avail) * 100;
   unsigned col = 0;
   ASSERT_EQ(stringify(si_t(sum.num_bytes)), tbl.get(0, col++));