]> 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>
Mon, 22 May 2023 15:49:36 +0000 (15:49 +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>
(cherry picked from commit 5f1f3625908331e164274621f2e0b092efda0452)

src/crimson/osd/osd_operations/snaptrim_event.cc

index d16e6c7c09bc5f7eea8459559f21dadac62a4823..e63e78481ac1b60fa840f5a48ac24a7f658335c3 100644 (file)
@@ -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"}
+    );
   });
 }