int RGWRemoteDataLog::read_sync_status(rgw_data_sync_status *sync_status)
{
- return run(new RGWReadDataSyncStatusCoroutine(&sync_env, sync_status));
+ // cannot run concurrently with run_sync(), so run in a separate manager
+ RGWCoroutinesManager crs(store->ctx(), nullptr);
+ return crs.run(new RGWReadDataSyncStatusCoroutine(&sync_env, sync_status));
}
int RGWRemoteDataLog::init_sync_status(int num_shards)
{
- return run(new RGWInitDataSyncStatusCoroutine(&sync_env, num_shards));
+ RGWCoroutinesManager crs(store->ctx(), nullptr);
+ return crs.run(new RGWInitDataSyncStatusCoroutine(&sync_env, num_shards));
}
static string full_data_sync_index_shard_oid(const string& source_zone, int shard_id)