rgw: fetch_remote_obj() preserves original part lengths for BlockDecrypt#52248
rgw: fetch_remote_obj() preserves original part lengths for BlockDecrypt#52248
Conversation
|
this does seem to fix the |
|
@cbodley how is this different from what @mdw-at-linuxbox is working on? |
it's the same thing. i emailed him about this yesterday |
|
review feedback from @mdw-at-linuxbox:
|
|
jenkins test make check |
|
jenkins test api |
|
a make check build failure: and multisite tests showed crashes on realm reload: i doubt it's caused by this PR (maybe sync fairness?) so i scheduled tests against main in https://pulpito.ceph.com/cbodley-2023-08-03_02:45:05-rgw:multisite-main-distro-default-smithi/ |
i see the same crash there on main. opened https://tracker.ceph.com/issues/62298 with details (cc @smanjara) |
users now call a static read_manifest_parts() function, and pass the resulting vector into the BlockDecrypt constructor Signed-off-by: Casey Bodley <[email protected]>
because multisite replicates multipart objects as a single part, we lose information about the part sizes from the original manifest that is necessary to correctly decrypt across those part boundaries on replication, parse the part lengths out of the source object's manifest, and store them in a separate RGW_ATTR_CRYPT_PARTS for use on decryption Fixes: https://tracker.ceph.com/issues/46062 Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
|
@smanjara i'd love your help with review. Marcus hasn't approved, but he did cherry-pick this downstream where it was verified by QE |
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
|
i pulled in the commits from #51842 and added a release note with recovery instructions |
|
@cbodley this was never pulled in to pacific what i can find? this tracker https://tracker.ceph.com/issues/62322 |
because multisite replicates multipart objects as a single part, we lose information about the part sizes from the original manifest that is necessary to correctly decrypt across those part boundaries
on replication, parse the part lengths out of the source object's manifest, and store them in a separate RGW_ATTR_CRYPT_PARTS for use on decryption
Fixes: https://tracker.ceph.com/issues/46062
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