From 17d68c22da7c3eac336f5ea8ecac13b5e8d75568 Mon Sep 17 00:00:00 2001 From: Abhishek Lekshmanan Date: Thu, 12 Jan 2017 22:09:01 +0100 Subject: [PATCH] rgw_admin: get master's period from store's current period info 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 (cherry picked from commit 4ca18df7198a9f0ded8b0100a70b5db7187c3de4) --- src/rgw/rgw_admin.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index ede5781dd9095..7da25fed670e7 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1793,19 +1793,21 @@ static void get_md_sync_status(list& status) return; } + map 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 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; -- 2.39.5