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: v10.2.4~26^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F11471%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 (cherry picked from commit 6e9a915b565923081f609048072b8d75716a74ea) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index b4a09d7fcda6..8f22c82a773a 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -3558,6 +3558,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 */ + } } int RGWGetCORS::verify_permission()