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:
- Code from rgw_sal_rados.cc existed in rgw_sal.cc in Octopus
#include "common/errno.h"
#include "rgw_sal.h"
+#include "rgw_lc.h"
#include "rgw_bucket.h"
#include "rgw_multi.h"
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;