versioning history mode treats DLO manifests inconsistently

Bug #1626989 reported by Alistair Coles
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Fix Released
Medium
Unassigned

Bug Description

object versioning has never versioned DLO manifests (for reasons unknown to me).

With https://review.openstack.org/#/c/214922/ a new history mode of versioning was introduced that writes delete markers to the versions container when an object is deleted. These delete markers are created when a DLO manifest is deleted, but there are no versions of the DLO manifest, so the delete marker is pointless. Since none of this DLO treatment is documented, the generation of a delete marker is also confusing.

Possible actions to address this issue:

1) The introduction of history mode might have been an opportunity to have DLO manifests be versioned. Is it too late?

or

2) document the anomalous treatment of DLOs in versioned writes doc

 and

3) do not create delete marker for a DLO manifest

description: updated
Revision history for this message
Tim Burke (1-tim-z) wrote :

Bonus fun: if the archive container doesn't exist, the delete marker PUT request triggers a 412 even though we were just going to delete the manifest anyway!

Tim Burke (1-tim-z)
Changed in swift:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to swift (master)

Reviewed: https://review.openstack.org/446142
Committed: https://git.openstack.org/cgit/openstack/swift/commit/?id=3ad877323978dcf4130e9543a2678bb928c1ecb8
Submitter: Jenkins
Branch: master

commit 3ad877323978dcf4130e9543a2678bb928c1ecb8
Author: Tim Burke <email address hidden>
Date: Wed Mar 15 19:30:38 2017 +0000

    Version DLOs, just like every other type of object

    Previously, requests involving DLOs would bypass versioned_writes:

     * Any existing DLOs wouldn't get copied to the archive container during
       overwrites (or deletes, with history-mode), so there would be no
       evidence they had ever existed.

     * Any new DLOs wouldn't copy overwritten objects to the archive
       container, potentially leading to data loss.

    Now, DLOs will behave like every other type of object under
    versioned_writes.

    Change-Id: I488e13eead2f33dd272d03f6f898adc52fc7fdad
    Related-Change: Ie899290b3312e201979eafefb253d1a60b65b837
    Related-Change: Ib5b29a19e1d577026deb50fc9d26064a8da81cd7
    Closes-Bug: #1626989

Changed in swift:
status: New → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/swift 2.15.0

This issue was fixed in the openstack/swift 2.15.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.