From: Matan Breizman Date: Mon, 24 Apr 2023 12:55:08 +0000 (+0000) Subject: crimson/osd/osd_operations/snaptrim_event: Handle missing clone obc X-Git-Tag: v18.1.0~55^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=909124000b822149ea334487ee6bc60013a6b0f9;p=ceph.git crimson/osd/osd_operations/snaptrim_event: Handle missing clone obc The case where resolve_oid is not able to return the clone oid (in order to load the clone obc) should result in an SNAPTRIM_ERROR and stop the loop iteration. Without taking this case into account an infinite loop of snap trim events will be created. The ENOENT error is delegated upwards to be handled by PG::on_active_actmap(). Fixes: https://tracker.ceph.com/issues/59231 Signed-off-by: Matan Breizman (cherry picked from commit 5f1f3625908331e164274621f2e0b092efda0452) --- diff --git a/src/crimson/osd/osd_operations/snaptrim_event.cc b/src/crimson/osd/osd_operations/snaptrim_event.cc index d16e6c7c09bc5..e63e78481ac1b 100644 --- a/src/crimson/osd/osd_operations/snaptrim_event.cc +++ b/src/crimson/osd/osd_operations/snaptrim_event.cc @@ -528,9 +528,10 @@ SnapTrimObjSubEvent::with_pg( }); }); }); - }).handle_error_interruptible(PG::load_obc_ertr::all_same_way([] { - return seastar::now(); - })); + }).handle_error_interruptible( + remove_or_update_iertr::pass_further{}, + crimson::ct_error::assert_all{"unexpected error in SnapTrimObjSubEvent"} + ); }); }