]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
pacific: rgw: do not permit locked object version removal 47041/head
authorIgor Fedotov <igor.fedotov@croit.io>
Mon, 11 Jul 2022 14:59:00 +0000 (17:59 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Fri, 15 Jul 2022 16:15:26 +0000 (19:15 +0300)
commit77ef056588674b619332c8684c5d7bef3ac8a439
tree9de13c96c10b6bf252251bfe3cdab33a6e6b4700
parent6a484d69e502587a087e3f852c89406cb536e233
pacific: rgw: do not permit locked object version removal

This commit targets Pacific explicitly and hence "violates" regular
backporting policy due to the fact that Quincy onward releases aren't
impacted by the bug. Post-Pacific releases have got a major update
through https://github.com/ceph/ceph/pull/39399 which in particular fixes the
case.
For reasons we would prefer not to backport this update completely hence
just the partial minor patch here.
Some more details on the bug can be found in the relevant ticket's comments as
well.

Additional note about the implementation: originally the patch relied on using
RGWObject::get_obj function but this implementation causes rgw process
access vialotaion when running some of test cases in s3-tests suite.
The root cause is apparently an uninitialized bucket pointer at RGWObject under
some circumstances. Hence that get_obj() implementation is copy-pasted to
RGWRadosObject::get_obj_state() and altered a bit to use local bucket reference.

Fixes: https://tracker.ceph.com/issues/55766
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
src/rgw/rgw_sal_rados.cc