rgw: fix multipart get part when count==1#58288
Conversation
the RGWObjManifest for multipart uploads is subtly different when there's only a single part. in that case, get_cur_part_id() for the final rule returns 1 where it otherwise returns (parts_count + 1) this caused two problems: * we returned a parts_count of 0 instead 1, and * the do-while loop got stuck in an infinite loop expecting the last rule's part id to be higher than the requested part id Fixes: https://tracker.ceph.com/issues/66705 Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
@mattbenjamin you discovered this issue in #55076 and worked around it with: params.parts_count = (cur_part_id == 1) ? 1 : cur_part_id - 1;test case in ceph/s3-tests#570 |
|
oops, qa didn't include the test case from ceph/s3-tests#570 |
|
passed qa in https://pulpito.ceph.com/cbodley-2024-07-03_01:53:26-rgw-wip-cbodley-testing-distro-default-smithi/ with rerun https://pulpito.ceph.com/cbodley-2024-07-04_21:53:21-rgw-wip-cbodley-testing-distro-default-smithi/
|
rgw: fix multipart get part when count==1 Reviewed-by: Matt Benjamin <mbenjamin@redhat.com> Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
the RGWObjManifest for multipart uploads is subtly different when there's only a single part. in that case, get_cur_part_id() for the final rule returns 1 where it otherwise returns (parts_count + 1)
this caused two problems for the 'get part' feature from #50148:
Fixes: https://tracker.ceph.com/issues/66705
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 windowsjenkins test rook e2e