From: lu.shasha Date: Fri, 14 Apr 2017 09:22:37 +0000 (+0800) Subject: rgw: add 'state==SyncState::IncrementalSync' condition when add item to shards_behind. X-Git-Tag: v12.0.3~230^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7e3691aa7a0b90d161dc9076fea2cc80355fe575;p=ceph.git rgw: add 'state==SyncState::IncrementalSync' condition when add item to shards_behind. after running 'radosgw-admin data sync init', the sync_marker's state will change to FullSync, but the marker didn't clean. So 'sync status' command will wrongly inset shards_behind. Signed-off-by: Shasha Lu --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index de1b3b62bf2a..e8bdf9a0c336 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1897,7 +1897,8 @@ static void get_md_sync_status(list& status) continue; } auto master_marker = iter->second.marker; - if (master_marker > local_iter.second.marker) { + if (local_iter.second.state == rgw_meta_sync_marker::SyncState::IncrementalSync && + master_marker > local_iter.second.marker) { shards_behind[shard_id] = local_iter.second.marker; } } @@ -2044,7 +2045,8 @@ static void get_data_sync_status(const string& source_zone, list& status continue; } auto master_marker = iter->second.marker; - if (master_marker > local_iter.second.marker) { + if (local_iter.second.state == rgw_data_sync_marker::SyncState::IncrementalSync && + master_marker > local_iter.second.marker) { shards_behind[shard_id] = local_iter.second.marker; } }