Actions
Bug #51572
openretry_raced_bucket_write() callers not handling attrs correctly
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
pacific
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
some ops like RGWPutCORS, RGWDeleteCORS, etc. handle writes to the bucket instance like this:
op_ret = retry_raced_bucket_write(this, s->bucket.get(), [this] { rgw::sal::Attrs attrs(s->bucket_attrs); attrs[RGW_ATTR_CORS] = cors_bl; return s->bucket->set_instance_attrs(this, attrs, s->yield); });
if retry_raced_bucket_write() detects a race and reloads the bucket info, 's->bucket_attrs' doesn't get updated with the new bucket attributes
other ops handle this correctly by using s->bucket->get_attrs() instead:
op_ret = retry_raced_bucket_write(this, s->bucket.get(), [this, y] { rgw::sal::Attrs attrs = s->bucket->get_attrs(); attrs[RGW_ATTR_TAGS] = tags_bl; return s->bucket->set_instance_attrs(this, attrs, y); });
No data to display
Actions