It's entirely fine for the map_epoch to change while the op is processed
as long as none of the intervening epochs caused an interval change. In
general, the correct way to check for an interval change is with
has_reset_since.
We don't need to do this check here at all because IOInterruptCondition
will already have performed it against the captured epoch when the
continuation resumed.
Introduced:
31418020fd58
Fixes: https://tracker.ceph.com/issues/58486
Signed-off-by: Samuel Just <sjust@redhat.com>
}
epoch_t map_epoch = get_osdmap_epoch();
-
- if (__builtin_expect(osd_op_p.at_version.epoch != map_epoch, false)) {
- throw crimson::common::actingset_changed(is_primary());
- }
+ ceph_assert(!has_reset_since(osd_op_p.at_version.epoch));
peering_state.pre_submit_op(obc->obs.oi.soid, log_entries, osd_op_p.at_version);
peering_state.append_log_with_trim_to_updated(std::move(log_entries), osd_op_p.at_version,