]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: Fix %USED calculation bug. 19165/head
authorXiaoxi Chen <xiaoxchen@ebay.com>
Mon, 27 Nov 2017 05:51:58 +0000 (22:51 -0700)
committerXiaoxi Chen <xiaoxchen@ebay.com>
Tue, 28 Nov 2017 05:26:35 +0000 (22:26 -0700)
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>
src/mon/PGMap.cc
src/test/mon/PGMap.cc

index 5045337a5e70d698fcbc2cb8251164d86dd843e0..bfa3b611f25afaaa248be954efab909ba82d8992 100644 (file)
@@ -845,8 +845,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 614903e0f8c6525ade93cdb210a3f50c751a79a4..b13da18e23ee84a1d435ce7c7c10242e554b3922 100644 (file)
@@ -78,7 +78,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++));