eversion_t *write_from_dups)
{
assert(s <= can_rollback_to);
- lgeneric_subdout(cct, osd, 20) << " complete_to " << complete_to->version << dendl;
+ if (complete_to != log.end())
+ lgeneric_subdout(cct, osd, 20) << " complete_to " << complete_to->version << dendl;
auto earliest_dup_version =
log.rbegin()->version.version < cct->_conf->osd_pg_log_dups_tracked
bool reset_complete_to = false;
// we are trimming past complete_to, so reset complete_to
- if (e.version >= complete_to->version)
+ if (complete_to != log.end() && e.version >= complete_to->version)
reset_complete_to = true;
if (rollback_info_trimmed_to_riter == log.rend() ||
e.version == rollback_info_trimmed_to_riter->version) {
dout(10) << "trim " << log << " to " << trim_to << dendl;
log.trim(cct, trim_to, &trimmed, &trimmed_dups, &write_from_dups);
info.log_tail = log.tail;
- dout(10) << " after trim complete_to " << log.complete_to->version << dendl;
+ if (log.complete_to != log.log.end())
+ dout(10) << " after trim complete_to " << log.complete_to->version << dendl;
}
}