radosgw-admin: add command to resync encrypted multipart objects#51842
radosgw-admin: add command to resync encrypted multipart objects#51842
Conversation
|
@cbodley I assume is there logic to detect that the current site is the originating location of each object? |
@mattbenjamin the check for a multipart manifest should cover that, since the replicas aren't multipart. hopefully @mdw-at-linuxbox's fix doesn't change that, but we'll see |
1254441 to
9fd0a4d
Compare
|
tested in a 2-zone multisite setup with default encryption support from #51786 after creating a and verified that the secondary zone re-fetched the object: the request returns the expected i then ran the command again: and saw the remote zone fetch it again successfully: |
b591656 to
bd92e2b
Compare
|
verified that it works for versioned objects, and that updated json format: |
|
Hello Devs, Thanks! |
|
after reproducing the checksum mismatch error with the same steps from https://tracker.ceph.com/issues/46062#note-6, i upgraded radosgws with the draft fix in #52248, and verified that this tool reschedules its replication, and that replication corrects the md5 mismatch object on secondary zone is corrupted: repair tool on primary zone detects the encrypted multipart object: the re-replicated object has correct checksum: |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
bd92e2b to
b8942dc
Compare
|
jenkins test make check |
|
jenkins test api |
|
jenkins test api |
|
jenkins build docs |
|
jenkins test docs |
|
moved commits into #52248 to simplify backports |
a recovery command for encrypted multipart objects that were corrupted on replication by https://tracker.ceph.com/issues/46062. depends on a separate fix for the replication logic to remember the source object's part boundaries for decryption
radosgw-admin bucket resync encrypted multipartcommand lists all of the object versions in a given bucket and checks the head object xattrs for encryption and multipart. if found, rewrites the head object with an updated mtime so other zones will resync the dataTODO:
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 toxjenkins test windows