]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/rados: fix list_objects_ordered() detection of "forward progress"
authorCasey Bodley <cbodley@redhat.com>
Tue, 11 Mar 2025 16:51:02 +0000 (12:51 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 31 Mar 2025 21:03:22 +0000 (17:03 -0400)
for multiple versions of the same object name, ListObjectVersions is
supposed to return versions "in the order that they were stored,
returning the most recently stored object first"

this sort order is preserved by the bucket index in cls_rgw, so
list_objects_ordered() should not expect the version ids to be sorted
lexicographically. replace the not-less-than comparison with equality

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 24f55b883e5009b032e1c0e91932a01d5d231945)

src/rgw/driver/rados/rgw_rados.cc

index 0f276ed6e97b28f7322513560aea99b9f6c7d75a..038598689cf17a607a9b557110c0b40ced482a5a 100644 (file)
@@ -1796,7 +1796,7 @@ int RGWRados::Bucket::List::list_objects_ordered(
     ldpp_dout(dpp, 20) << __func__ <<
       ": starting attempt " << attempt << dendl;
 
-    if (attempt > 1 && !(prev_marker < cur_marker)) {
+    if (attempt > 1 && prev_marker == cur_marker) {
       // we've failed to make forward progress
       ldpp_dout(dpp, 0) << "ERROR: " << __func__ <<
        " marker failed to make forward progress; attempt=" << attempt <<