Project

General

Profile

Actions

Bug #45030

closed

Empty NextVersionIdMarker when it must be "null"

Added by Dmitry Plyakin about 4 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Or Friedmann
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

There is an issue in GET object versions method. If result is truncated and last item has "null" version, NextVersionIdMarker is empty, while it must be "null".
For example we have bucket with 3 object versions:

<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   ...
   <Version>
      <Key>address_pools.py</Key>
      <VersionId>AEjTSz4ikORFVw6chz18vI3IZDrNqSP</VersionId>
      ...
   </Version>
   <Version>
      <Key>addresses.py</Key>
      <VersionId>null</VersionId>
      ...
   </Version>
   <Version>
      <Key>addresses.py</Key>
      <VersionId>e025cBpQGtYmhjW96h.2yvZDfbQXjZA</VersionId>
      ...
   </Version>
</ListVersionsResult>

Query RGW with max-keys=2:
GET https://rgw_host/mybucket/?versions&max-keys=2&delimiter=/

<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   ...
   <NextKeyMarker>addresses.py</NextKeyMarker>
   <NextVersionIdMarker></NextVersionIdMarker>
   <MaxKeys>2</MaxKeys>
   <IsTruncated>true</IsTruncated>
   ...
   <Version>
      <Key>address_pools.py</Key>
      <VersionId>AEjTSz4ikORFVw6chz18vI3IZDrNqSP</VersionId>
      ...
   </Version>
   <Version>
      <Key>addresses.py</Key>
      <VersionId>null</VersionId>
      ...
   </Version>
</ListVersionsResult>

Query AWS with max-keys=2:
GET https://s3.amazonaws.com/mybucket/?versions&max-keys=2&delimiter=/

<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   ...
   <NextKeyMarker>addresses.py</NextKeyMarker>
   <NextVersionIdMarker>null</NextVersionIdMarker>
   <MaxKeys>2</MaxKeys>
   <IsTruncated>true</IsTruncated>
   ...
   <Version>
      <Key>address_pools.py</Key>
      <VersionId>o054ULNTUZWIoyfz83cLKd2qKr0Swlu0</VersionId>
      ...
   </Version>
   <Version>
      <Key>addresses.py</Key>
      <VersionId>null</VersionId>
      ...
   </Version>
</ListVersionsResult>

Actions

Also available in: Atom PDF