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 <mbenjamin@redhat.com>
(cherry picked from commit
cc1e812a003e2af74fe0c69ccae08dd7aa68bbe0)
Conflicts:
src/rgw/rgw_sal_rados.cc
Cherry-pick notes:
- must pass this->info as first param to remove_bucket_config
- conflict with includes
#include "rgw_zone.h"
#include "rgw_rest_conn.h"
+#include "rgw_service.h"
+#include "rgw_lc.h"
#include "services/svc_sys_obj.h"
#include "services/svc_zone.h"
#include "services/svc_tier_rados.h"
return ret;
}
+ // remove lifecycle config, if any (XXX note could be made generic)
+ (void) store->getRados()->get_lc()->remove_bucket_config(
+ this->info, get_attrs());
+
ret = store->ctl()->bucket->sync_user_stats(dpp, info.owner, info, y);
if (ret < 0) {
ldout(store->ctx(), 1) << "WARNING: failed sync user stats before bucket delete. ret=" << ret << dendl;