From: Matt Benjamin Date: Tue, 4 Jan 2022 16:22:00 +0000 (-0500) Subject: rgwlc: remove lc entry on bucket delete X-Git-Tag: v15.2.16~18^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=11f4fe55947e132fd60c39d0513f0bb9935ad513;p=ceph.git rgwlc: remove lc entry on bucket delete Buckets with lifecycle policies installed have a state entry that must also be deleted when the bucket is removed. Fixes: https://tracker.ceph.com/issues/46728 N.b., should really be generic, not specific to the RADOS store, but there doesn't seem to be a clean model for implementing generic side effects in Zipper, currently. Signed-off-by: Matt Benjamin (cherry picked from commit cc1e812a003e2af74fe0c69ccae08dd7aa68bbe0) Conflicts: src/rgw/rgw_sal_rados.cc Cherry-pick notes: - Code from rgw_sal_rados.cc existed in rgw_sal.cc in Octopus --- diff --git a/src/rgw/rgw_sal.cc b/src/rgw/rgw_sal.cc index 65880a4757f..53079f66a78 100644 --- a/src/rgw/rgw_sal.cc +++ b/src/rgw/rgw_sal.cc @@ -22,6 +22,7 @@ #include "common/errno.h" #include "rgw_sal.h" +#include "rgw_lc.h" #include "rgw_bucket.h" #include "rgw_multi.h" @@ -133,6 +134,10 @@ int RGWRadosBucket::remove_bucket(bool delete_children, optional_yield y) return ret; } + // remove lifecycle config, if any (XXX note could be made generic) + (void) store->getRados()->get_lc()->remove_bucket_config( + get_info(), get_attrs()); + ret = store->ctl()->bucket->sync_user_stats(info.owner, info); if ( ret < 0) { ldout(store->ctx(), 1) << "WARNING: failed sync user stats before bucket delete. ret=" << ret << dendl;