]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/pg: remove snapmapper objects when eventually removing
authorXuehan Xu <xuxuehan@qianxin.com>
Sat, 21 Sep 2024 05:27:01 +0000 (13:27 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Sat, 21 Sep 2024 05:33:13 +0000 (13:33 +0800)
collections at the last moment of pg deleting, just as pg meta objects

Fixes: https://tracker.ceph.com/issues/68174
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/osd/pg.cc

index d210773ca3031306881db88bd293650815ee70c9..5ef8c2d97afe494fc1fa991effcb01fd27c515c7 100644 (file)
@@ -481,6 +481,7 @@ PG::do_delete_work(ceph::os::Transaction &t, ghobject_t _next)
   auto [objs_to_rm, next] = fut.get();
   if (objs_to_rm.empty()) {
     logger().info("all objs removed, removing coll for {}", pgid);
+    t.remove(coll_ref->get_cid(), pgid.make_snapmapper_oid());
     t.remove(coll_ref->get_cid(), pgmeta_oid);
     t.remove_collection(coll_ref->get_cid());
     (void) shard_services.get_store().do_transaction(
@@ -490,7 +491,7 @@ PG::do_delete_work(ceph::os::Transaction &t, ghobject_t _next)
     return {next, false};
   } else {
     for (auto &obj : objs_to_rm) {
-      if (obj == pgmeta_oid) {
+      if (obj == pgmeta_oid || obj.is_internal_pg_local()) {
         continue;
       }
       logger().trace("pg {}, removing obj {}", pgid, obj);