]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw_admin: get master's period from store's current period info
authorAbhishek Lekshmanan <abhishek@suse.com>
Thu, 12 Jan 2017 21:09:01 +0000 (22:09 +0100)
committerAbhishek Lekshmanan <abhishek@suse.com>
Thu, 12 Jan 2017 21:17:32 +0000 (22:17 +0100)
This ensures that we get the current period in contrast to the admin log
which gets the master's earliest period.

Fixes: http://tracker.ceph.com/issues/18064
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
src/rgw/rgw_admin.cc

index 594fdc62f43bcda85fb6845f94c6381f79f9375c..1ce05f15f556f749c5b0bca887dc68f8345ef747 100644 (file)
@@ -1794,19 +1794,21 @@ static void get_md_sync_status(list<string>& status)
     return;
   }
 
+
   map<int, RGWMetadataLogInfo> master_shards_info;
-  string master_period;
+  string master_start_period;
 
-  ret = sync.read_master_log_shards_info(&master_period, &master_shards_info);
+  ret = sync.read_master_log_shards_info(&master_start_period, &master_shards_info);
   if (ret < 0) {
     status.push_back(string("failed to fetch master sync status: ") + cpp_strerror(-ret));
     return;
   }
 
   map<int, string> shards_behind;
-
-  if (sync_status.sync_info.period != master_period) {
-    status.push_back(string("master is on a different period: master_period=" + master_period + " local_period=" + sync_status.sync_info.period));
+  if (store->get_current_period_id() !=  sync_status.sync_info.period) {
+    status.push_back(string("master is on a different period: master_period=" +
+                            store->get_current_period_id() + " local_period=" +
+                            sync_status.sync_info.period));
   } else {
     for (auto local_iter : sync_status.sync_markers) {
       int shard_id = local_iter.first;