From: Xiaoxi Chen Date: Mon, 27 Nov 2017 05:51:58 +0000 (-0700) Subject: mon/PGMap: Fix %USED calculation bug. X-Git-Tag: v12.2.2~2^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F19230%2Fhead;p=ceph.git mon/PGMap: Fix %USED calculation bug. Previous code forgot to multiple raw_used_ratio to calculate used byte. Fixes: http://tracker.ceph.com/issues/22247 Signed-off-by: Xiaoxi Chen (cherry picked from commit d10c6c26f9ef7372e2c95da79d23b07ce5f4e0e5) --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 32fabdfce202..6fcc3c0721af 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -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; diff --git a/src/test/mon/PGMap.cc b/src/test/mon/PGMap.cc index d7e8a18fe41c..37648b9e52bd 100644 --- a/src/test/mon/PGMap.cc +++ b/src/test/mon/PGMap.cc @@ -175,7 +175,7 @@ TEST(pgmap, dump_object_stat_sum_0) float copies_rate = (static_cast(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++));