]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/osd_operations/snaptrim_event: Handle missing clone obc
authorMatan Breizman <mbreizma@redhat.com>
Mon, 24 Apr 2023 12:55:08 +0000 (12:55 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Tue, 25 Apr 2023 08:28:02 +0000 (08:28 +0000)
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 <mbreizma@redhat.com>
src/crimson/osd/osd_operations/snaptrim_event.cc

index e3327cfa02fba841ca18824e72d5431038a5f608..8bb1ced54062047e8650a75ab47fbee90d955f1e 100644 (file)
@@ -525,9 +525,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"}
+    );
   });
 }