]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: calc min_last_epoch_clean when decode 5950/head
authorKefu Chai <kchai@redhat.com>
Wed, 16 Sep 2015 07:08:17 +0000 (15:08 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 16 Sep 2015 14:04:32 +0000 (22:04 +0800)
Fixes: #13112
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/mon/PGMap.cc
src/test/mon/PGMap.cc

index 6fa3aaaea8fa441e32042fd37775d9d7d47e285a..28561b7168fdec571223edae754a336c991bcb38 100644 (file)
@@ -374,7 +374,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;