]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix multipart upload object leaks due to re-upload
authorYixin Jin <yjin77@yahoo.ca>
Mon, 9 Jan 2023 19:42:25 +0000 (19:42 +0000)
committerYixin Jin <yjin77@yahoo.ca>
Thu, 26 Jan 2023 19:42:23 +0000 (19:42 +0000)
commit2ac63de15bcd59cd45a4f05c4af6297995aee944
treedab6c87fedf7da91cb80aefc93ddf4a144db0746
parent4a2d50d9b7dd71efbfbbaeb2cf4dbeae602473e3
rgw: fix multipart upload object leaks due to re-upload

This commit fixes the object leaks when an mp part object
is re-uploaded. Details of the fix are:

1. Upon re-upload, remember the prefix used in previous
part upload in a new field "past_prefixes" in RGWUploadPartInfo.
2. Create a new CLS function for updating part info
in the metadata object.
3. Utilize the new CLS function during mp upload.
4. At the upload conclusion (compete/abort), clean up
the part objects that are not used for the final
assembly, thus preventing the object leak.

Fixes: https://tracker.ceph.com/issues/16767
Signed-off-by: Yixin Jin <yjin77@yahoo.ca>
src/cls/rgw/cls_rgw.cc
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/cls/rgw/cls_rgw_const.h
src/cls/rgw/cls_rgw_ops.cc
src/cls/rgw/cls_rgw_ops.h
src/rgw/driver/rados/rgw_putobj_processor.cc
src/rgw/driver/rados/rgw_sal_rados.cc
src/rgw/driver/rados/rgw_sal_rados.h
src/rgw/rgw_basic_types.h
src/rgw/rgw_multi.cc