Previously, we incremented prior to usage in both prepare_transaction
and execute_clone. Because at_version is initialized from
PG::get_next_version(), this results in log entries skipping
values. Instead, only increment after populating clone
object_info.
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit
7e0dde721d5203623b06351bb4b261b3c9fe2c33)
// entry.
assert(obc->obs.oi.soid.snap >= CEPH_MAXSNAP);
std::vector<pg_log_entry_t> log_entries;
- osd_op_params->at_version.version++;
log_entries.emplace_back(
obc->obs.exists ?
pg_log_entry_t::MODIFY : pg_log_entry_t::DELETE,
return std::vector<snapid_t>{std::begin(snapc.snaps), last};
}();
- osd_op_params->at_version.version++;
auto clone_obc = prepare_clone(coid, osd_op_params->at_version);
+ osd_op_params->at_version.version++;
// make clone
backend.clone(clone_obc->obs.oi, initial_obs, clone_obc->obs, txn);