From e397b7e6d0c49d625fb2b2363311e6486f2045fe Mon Sep 17 00:00:00 2001 From: "Adam C. Emerson" Date: Fri, 17 Nov 2017 16:16:38 -0500 Subject: [PATCH] rgw: Handle stale bucket info in RGWDeleteBucketPolicy Signed-off-by: Adam C. Emerson --- src/rgw/rgw_op.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index aa62e40f24a45..95aec1ba175a0 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -6955,11 +6955,11 @@ int RGWDeleteBucketPolicy::verify_permission() void RGWDeleteBucketPolicy::execute() { - auto attrs = s->bucket_attrs; - attrs.erase(RGW_ATTR_IAM_POLICY); - op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, - &s->bucket_info.objv_tracker); - if (op_ret == -ECANCELED) { - op_ret = 0; /* lost a race, but it's ok because policies are immutable */ - } + op_ret = retry_raced_bucket_write(store, s, [this] { + auto attrs = s->bucket_attrs; + attrs.erase(RGW_ATTR_IAM_POLICY); + op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, + &s->bucket_info.objv_tracker); + return op_ret; + }); } -- 2.39.5