rgw: maintain bucket instance xattrs during successful & cancelled reshard#44788
rgw: maintain bucket instance xattrs during successful & cancelled reshard#44788ivancich wants to merge 3 commits intoceph:wip-rgw-multisite-reshardfrom
Conversation
|
not compiling yet, but it looks like the right approach 👍 can you please pull in the commit from #44643 so we can verify this branch in teuthology? we'll want to merge them at the same time |
c0467c2 to
58d8e9a
Compare
Thanks for the early review. Yeah, it needed a few fixes from a slightly botched forward-port. I saw #44643 earlier today and that made me realize I'd never finished this work. I'll now bring in that commit. Thanks! |
|
builds pending in https://shaman.ceph.com/builds/ceph/pr-44788/ |
|
I've heard that this fix may work for manual resharding but not dynamic resharding. I've added the DNM label until I can look into this. |
With the new resharding code, some bucket metadata that is stored as xattrs (e.g., ACLs, life-cycle policies) were not sent with the updated bucket instance data when resharding completed. As a result, resharding has a regression where that metadata is lost after a successful reshard. This commit restores the variable in the RGWBucketReshard class that maintains the bucket attributes, so they can be saved when the bucket instance object is updated. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
There appears to be a long-standing bug in RGW such that when resharding is cancelled and the bucket instance is updated to reflect the new resharding status, the xattrs were lost. The xattrs are used to store metadata such as ACLs and LifeCycle policies. This commit makes sure that all call paths that lead to a cancelled reshard provide the xattrs, so they can be included when the bucket instance info is updated. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
09d5ae9 to
25bcf44
Compare
|
My own testing appears to show that it does work with dynamic resharding. I'm waiting for further information from the reporter. |
yay |
|
first qa run failed with i added the fix and rescheduled in https://pulpito.ceph.com/cbodley-2022-01-31_18:53:37-rgw-pr-44788-distro-default-smithi/ |
|
jenkins test make check |
|
rerun scheduled in https://pulpito.ceph.com/cbodley-2022-02-01_16:05:17-rgw-pr-44788-distro-default-smithi using https://github.com/cbodley/ceph/commits/pr-44788 as the suite-branch, which has extra commits for the mgr feedback module and the centos 8 stream changes |
|
pushed to wip-rgw-multisite-reshard, thanks |
With the new resharding code, some bucket metadata that is stored as xattrs (e.g., ACLs, life-cycle policies) were not sent with the updated bucket instance data when resharding completed. As a result, resharding has a regression where that metadata is lost after a successful reshard.
The first commit restores the variable in the RGWBucketReshard class that maintains the bucket attributes, so they can be saved when the bucket instance object is updated.
There appears to be a long-standing bug in RGW such that when resharding is cancelled and the bucket instance is updated to reflect the new resharding status, the xattrs were lost. The xattrs are used to store metadata such as ACLs and LifeCycle policies.
The second commit makes sure that all call paths that lead to a cancelled reshard provide the xattrs, so they can be included when the bucket instance info is updated.
Additionally, @cbodley contributed tests.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox