Actions
Bug #23674
closedcan't remove rados objects after copy rgw-object fail
% Done:
0%
Source:
Development
Tags:
Backport:
nautilus,mimic,luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rgw
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
In copy rgw-object, rgw will increate rados objects refcount by using cls_refcount_get, and the ref_tag include '\0', see rgw_rados.cc::RGWRados::copy_obj() { ...ref_tag = tag + '\0'; cls_refcount_get(op, ref_tag, true);...}.
And rgw will rollback reference by using cls_refcount_put if the next operation fail, but the ref_tag does not include '\0', see rgw_rados.cc::RGWRados::copy_obj() { ...done_ret:...cls_refcount_put(op, tag, true);...}, so the cls_refcount_put has no effect, the rados object refcount will not decrease, and the rados object will not be removed even if the souce rgw-object be removed.
Actions