From: kchheda3 Date: Tue, 14 Oct 2025 20:05:44 +0000 (-0400) Subject: rgw/lc: Do not delete DM if its at end of pagination list. X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dadfa93bfac81d927cbd0fa88dd18b5fca8b796d;p=ceph.git rgw/lc: Do not delete DM if its at end of pagination list. fixes tracker https://tracker.ceph.com/issues/73539 Signed-off-by: kchheda3 --- diff --git a/src/rgw/rgw_lc.cc b/src/rgw/rgw_lc.cc index eaae450c966..9d1a776454c 100644 --- a/src/rgw/rgw_lc.cc +++ b/src/rgw/rgw_lc.cc @@ -454,10 +454,18 @@ public: } boost::optional next_key_name() { - if (obj_iter == list_results.objs.end() || - (obj_iter + 1) == list_results.objs.end()) { - /* this should have been called after get_obj() was called, so this should - * only happen if is_truncated is false */ + if (obj_iter == list_results.objs.end()) { + return boost::none; + } + if ((obj_iter + 1) == list_results.objs.end()) { + /* At the last object in the current page */ + if (list_results.is_truncated) { + /* More pages exist. Cannot determine if next object has same name + * without fetching next page. Return current object name to indicate + * uncertainty and prevent incorrect DM deletion at page boundaries. */ + return obj_iter->key.name; + } + /* No more pages, definitively no next object */ return boost::none; }