From 816ae63b45d1149d56a2da5951bc67f9a859ca1e Mon Sep 17 00:00:00 2001 From: "J. Eric Ivancich" Date: Tue, 6 Oct 2020 12:42:22 -0400 Subject: [PATCH] rgw: fix setting of namespace in ordered and unordered bucket listing The namespace is not always set correctly during bucket listing. This can, for example, cause the listing of incomplete multipart uploads, which are in the _multipart_ namespace, to not paginate correctly, and cause entries to be re-listed. Signed-off-by: J. Eric Ivancich (cherry picked from commit bd6f163f366753e8ec42b85a53334f4bf78916bd) --- src/rgw/rgw_rados.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 71e63992756..2d74d5af483 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -1766,13 +1766,13 @@ int RGWRados::Bucket::List::list_objects_ordered( // or it will be empty; either way it's OK to copy rgw_obj_key marker_obj(params.marker.name, params.marker.instance, - params.marker.ns); + params.ns.empty() ? params.marker.ns : params.ns); rgw_obj_index_key cur_marker; marker_obj.get_index_key(&cur_marker); rgw_obj_key end_marker_obj(params.end_marker.name, params.end_marker.instance, - params.end_marker.ns); + params.ns.empty() ? params.end_marker.ns : params.ns); rgw_obj_index_key cur_end_marker; end_marker_obj.get_index_key(&cur_end_marker); const bool cur_end_marker_valid = !params.end_marker.empty(); @@ -2051,13 +2051,13 @@ int RGWRados::Bucket::List::list_objects_unordered(int64_t max_p, // or it will be empty; either way it's OK to copy rgw_obj_key marker_obj(params.marker.name, params.marker.instance, - params.marker.ns); + params.ns.empty() ? params.marker.ns : params.ns); rgw_obj_index_key cur_marker; marker_obj.get_index_key(&cur_marker); rgw_obj_key end_marker_obj(params.end_marker.name, params.end_marker.instance, - params.end_marker.ns); + params.ns.empty() ? params.end_marker.ns : params.ns); rgw_obj_index_key cur_end_marker; end_marker_obj.get_index_key(&cur_end_marker); const bool cur_end_marker_valid = !params.end_marker.empty(); -- 2.47.3