From: Casey Bodley Date: Tue, 7 Mar 2017 16:16:43 +0000 (-0500) Subject: rgw: fix marker comparison to detect end of mdlog period X-Git-Tag: v10.2.10~31^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=67011e51a7ba1538ad2c5f426311ae71bb5f8c34;p=ceph.git rgw: fix marker comparison to detect end of mdlog period Fixes: http://tracker.ceph.com/issues/18639 Signed-off-by: Casey Bodley (cherry picked from commit 7c23713b1a3c14b135f8eb6fdb36d113ea860e4e) --- diff --git a/src/rgw/rgw_sync.cc b/src/rgw/rgw_sync.cc index 4ff9d1944d6..19837e3a174 100644 --- a/src/rgw/rgw_sync.cc +++ b/src/rgw/rgw_sync.cc @@ -1584,10 +1584,16 @@ public: *reset_backoff = false; // back off and try again later return retcode; } - for (log_iter = log_entries.begin(); log_iter != log_entries.end(); ++log_iter) { - if (!period_marker.empty() && period_marker < log_iter->id) { + for (log_iter = log_entries.begin(); log_iter != log_entries.end() && !done_with_period; ++log_iter) { + if (!period_marker.empty() && period_marker <= log_iter->id) { done_with_period = true; - break; + if (period_marker < log_iter->id) { + ldout(cct, 10) << "found key=" << log_iter->id + << " past period_marker=" << period_marker << dendl; + break; + } + ldout(cct, 10) << "found key at period_marker=" << period_marker << dendl; + // sync this entry, then return control to RGWMetaSyncCR } if (!mdlog_entry.convert_from(*log_iter)) { ldout(sync_env->cct, 0) << __func__ << ":" << __LINE__ << ": ERROR: failed to convert mdlog entry, shard_id=" << shard_id << " log_entry: " << log_iter->id << ":" << log_iter->section << ":" << log_iter->name << ":" << log_iter->timestamp << " ... skipping entry" << dendl;