Project

General

Profile

Actions

Bug #64450

closed

rgw: bucket listing failed to make forward progress w/ versioned objects

Added by Alex Wojno 3 months ago. Updated about 2 months ago.

Status:
Duplicate
Priority:
Normal
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When listing the objects in a bucket while ordered (RGWRados::Bucket::List::list_objects_ordered), there is a marker comparison in order to determine if progress is being made. For a versioned object with a large amount of versions, this marker comparison could be incorrect. The comparison looks at object name (which will be the same for versioned object), and then the instance version from a lexicographical order, which is how the underlying OMAP is ordered. However, the index key structure is `<obj name>\0[v<ver>\0i<instance id>]` so the different versions are ordered by <ver> rather than instance id in the OMAP. In the following example: prev_marker = file1[\0]1[\0]i*cde*, cur_marker = file1[\0]2[\0]i*abc*, the marker comparison would fail even though we made forward progress. Due to how this behavior affects the listing logic, some objects end up being omitted during bucket listing.


Related issues 1 (1 open0 closed)

Is duplicate of rgw - Bug #64185: timeouts when listing versioned buckets that skip over many entriesFix Under ReviewCory Snyder

Actions
Actions

Also available in: Atom PDF