Skip to content

Commit

Permalink
rgw multisite: fix the increamtal bucket sync init
Browse files Browse the repository at this point in the history
in the `RGWBucketShardFullSyncCR::operate`, inc_marker will assigned with remote bilog's max_marker.
but the sync_status's inc_marker cant be assigned.so the next step inc sync will always sync
from null log,which means at beginning log.

Signed-off-by: Zengran Zhang <zhangzengran@h3c.com>
  • Loading branch information
Zengran Zhang committed Oct 19, 2016
1 parent 4d9ce9e commit d44f805
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/rgw/rgw_data_sync.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1747,13 +1747,14 @@ class RGWInitBucketShardSyncStatusCoroutine : public RGWCoroutine {

string lock_name;
string cookie;
rgw_bucket_shard_sync_info status;
rgw_bucket_shard_sync_info& status;

bucket_index_marker_info info;
public:
RGWInitBucketShardSyncStatusCoroutine(RGWDataSyncEnv *_sync_env,
const rgw_bucket_shard& bs)
: RGWCoroutine(_sync_env->cct), sync_env(_sync_env), bs(bs) {
const rgw_bucket_shard& bs,
rgw_bucket_shard_sync_info& _status)
: RGWCoroutine(_sync_env->cct), sync_env(_sync_env), bs(bs), status(_status) {
store = sync_env->store;
lock_name = "sync_lock";

Expand Down Expand Up @@ -1814,7 +1815,8 @@ class RGWInitBucketShardSyncStatusCoroutine : public RGWCoroutine {

RGWCoroutine *RGWRemoteBucketLog::init_sync_status_cr()
{
return new RGWInitBucketShardSyncStatusCoroutine(&sync_env, bs);
rgw_bucket_shard_sync_info sync_status;
return new RGWInitBucketShardSyncStatusCoroutine(&sync_env, bs, sync_status);
}

template <class T>
Expand Down Expand Up @@ -2747,8 +2749,7 @@ int RGWRunBucketSyncCoroutine::operate()

yield {
if ((rgw_bucket_shard_sync_info::SyncState)sync_status.state == rgw_bucket_shard_sync_info::StateInit) {
call(new RGWInitBucketShardSyncStatusCoroutine(sync_env, bs));
sync_status.state = rgw_bucket_shard_sync_info::StateFullSync;
call(new RGWInitBucketShardSyncStatusCoroutine(sync_env, bs, sync_status));
}
}

Expand Down

0 comments on commit d44f805

Please sign in to comment.