]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: calc min_last_epoch_clean when decode 6154/head
authorKefu Chai <kchai@redhat.com>
Wed, 16 Sep 2015 07:08:17 +0000 (15:08 +0800)
committerLoic Dachary <ldachary@redhat.com>
Fri, 2 Oct 2015 13:27:36 +0000 (15:27 +0200)
Fixes: #13112
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit d0ac68bf1785b330f3202d924c2203ace9393fe6)

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

index e60ed6ae29d3e446e546986c422be36dd7cfae8a..fb63d9ad1ced4419673aa099309bfdc09215121c 100644 (file)
@@ -373,7 +373,7 @@ void PGMap::calc_stats()
 
   redo_full_sets();
 
-  calc_min_last_epoch_clean();
+  min_last_epoch_clean = calc_min_last_epoch_clean();
 }
 
 void PGMap::update_pg(pg_t pgid, bufferlist& bl)
index 9f7a6b2d0b1fe818542e5af265b3a0e1dfdc0b4c..f13fa8936669c6017f9f3e858ef5afb401b7a4eb 100644 (file)
@@ -81,7 +81,40 @@ TEST(pgmap, min_last_epoch_clean)
 
 }
 
-
+TEST(pgmap, calc_stats)
+{
+  bufferlist bl;
+  {
+    PGMap pg_map;
+    PGMap::Incremental inc;
+    osd_stat_t os;
+    pg_stat_t ps;
+
+    ps.last_epoch_clean = 999;
+    inc.pg_stat_updates[pg_t(9,9)] = ps;
+    inc.version = 1;
+    inc.update_stat(0, 123, os);
+    pg_map.apply_incremental(g_ceph_context, inc);
+    ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
+    pg_map.encode(bl);
+  }
+  {
+    PGMap pg_map;
+    PGMap::Incremental inc;
+    osd_stat_t os;
+    pg_stat_t ps;
+
+    ps.last_epoch_clean = 999;
+    inc.pg_stat_updates[pg_t(9,9)] = ps;
+    inc.version = 1;
+    inc.update_stat(0, 321, os);
+    pg_map.apply_incremental(g_ceph_context, inc);
+    ASSERT_EQ(321u, pg_map.get_min_last_epoch_clean());
+    bufferlist::iterator p = bl.begin();
+    ::decode(pg_map, p);
+    ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
+  }
+}
 
 int main(int argc, char **argv) {
   vector<const char*> args;