From: Yehuda Sadeh Date: Fri, 30 Sep 2016 23:13:00 +0000 (-0700) Subject: rgw: don't fail if lost race when setting acls X-Git-Tag: v11.0.1~12^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F11286%2Fhead;p=ceph.git 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 --- 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)