From 6e9a915b565923081f609048072b8d75716a74ea Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 30 Sep 2016 16:13:00 -0700 Subject: [PATCH] rgw: don't fail if lost race when setting acls Fixes: http://tracker.ceph.com/issues/16930 When concurrently setting acls on object/bucket, we could lose in a race. Instead of retry, just return success (same effect as if we won and then other writer overwrote us). Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_op.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 4c913bc9cc22..7ff4a832422b 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -3905,6 +3905,9 @@ void RGWPutACLs::execute() attrs[RGW_ATTR_ACL] = bl; 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 acls are immutable */ + } } static void get_lc_oid(struct req_state *s, string& oid) -- 2.47.3