Project

General

Profile

Actions

Bug #73539

open

rgw/lc : LC accidentally deleting DMs as part of DM expiration and Current expiration and exposing deleted objects as current during pagination

Added by Krunal Chheda 5 months ago. Updated 16 days ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Backport:
squid tentacle
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Tags (freeform):
backport_processed
Fixed In:
v20.3.0-5520-ge45af87039
Released In:
Upkeep Timestamp:
2026-02-23T15:23:16+00:00

Description

Currently there is logic while processing DM, that if DM is current and there is another non-current object there, do not delete the DM as part of LC as it would make the non-current (the deleted object) as current.

To check if there exists another version, here is the logic that fetches the next item in list (unordered bucket list fetched by LC).However there is a FLAW in this approach when DM is present at the end of LIST (pagination list) but there are still items to be fetched (as we only fetch 1000 items).
Page 1: [...other objects..., DeleteMarker for "foo"]
Page 2: ["foo" v1, "foo" v2, ...other objects...]

In the above case, code returns FALSE to any other objects present after DM and LC goes and deletes the object exposing the the deleted object (non current) as current.

In order to fix this we either need to fetch the next page during next-key check or be conservative and skip deletion of DM if it occurs at end of pagination.


Related issues 2 (2 open0 closed)

Copied to rgw - Backport #75111: tentacle: rgw/lc : LC accidentally deleting DMs as part of DM expiration and Current expiration and exposing deleted objects as current during paginationIn ProgressKrunal ChhedaActions
Copied to rgw - Backport #75112: squid: rgw/lc : LC accidentally deleting DMs as part of DM expiration and Current expiration and exposing deleted objects as current during paginationIn ProgressKrunal ChhedaActions
Actions #1

Updated by Joseph Mundackal 5 months ago

  • Backport set to squid tentacle
  • Pull request ID set to 65947
Actions #2

Updated by Casey Bodley 5 months ago

  • Status changed from New to Fix Under Review
Actions #3

Updated by Upkeep Bot 16 days ago

  • Status changed from Fix Under Review to Pending Backport
  • Merge Commit set to e45af8703940bea4aec3045fabd61bcee2f98dae
  • Fixed In set to v20.3.0-5520-ge45af87039
  • Upkeep Timestamp set to 2026-02-23T15:23:16+00:00
Actions #4

Updated by Upkeep Bot 16 days ago

  • Copied to Backport #75111: tentacle: rgw/lc : LC accidentally deleting DMs as part of DM expiration and Current expiration and exposing deleted objects as current during pagination added
Actions #5

Updated by Upkeep Bot 16 days ago

  • Copied to Backport #75112: squid: rgw/lc : LC accidentally deleting DMs as part of DM expiration and Current expiration and exposing deleted objects as current during pagination added
Actions #6

Updated by Upkeep Bot 16 days ago

  • Tags (freeform) set to backport_processed
Actions

Also available in: Atom PDF