From: Samuel Just Date: Mon, 30 Jan 2023 06:20:27 +0000 (-0800) Subject: crimson/osd/pg: remove incorrect map epoch check in PG::submit_transasction X-Git-Tag: v18.1.0~419^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ab91b7c3d3b73bb34d2e98e895e0f8a7d9199a6f;p=ceph.git crimson/osd/pg: remove incorrect map epoch check in PG::submit_transasction 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 --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 27f3b28589d63..d4d76d1787eca 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -594,10 +594,7 @@ PG::submit_transaction( } 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,