Project

General

Profile

Actions

Bug #23674

closed

can't remove rados objects after copy rgw-object fail

Added by long li about 6 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
% 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.


Related issues 3 (0 open3 closed)

Copied to rgw - Backport #41713: luminous: can't remove rados objects after copy rgw-object failResolvedNathan CutlerActions
Copied to rgw - Backport #41714: nautilus: can't remove rados objects after copy rgw-object failResolvedNathan CutlerActions
Copied to rgw - Backport #41715: mimic: can't remove rados objects after copy rgw-object failResolvedNathan CutlerActions
Actions

Also available in: Atom PDF