object versioning + object expiry does not work as expected

Bug #1067677 reported by Netmagic Solutions
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Fix Released
Undecided
John Dickinson

Bug Description

Hi,

When we delete a versioned object, it's last available version gets moved to its original location and it does not appear in versions container. This is the normal behavior of object-versioning.

But, when I tried to set X-Delete-At header for a versioned object. When it is expired and deleted by object-expirer, the latest available version from the versions container is restored to it's original container but it still remains in the versions container instead of getting deleted.

Regards,

Viral

Zhou Yuan (yuan-zhou)
Changed in swift:
assignee: nobody → Zhou Yuan (yuan-zhou)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to swift (master)

Fix proposed to branch: master
Review: https://review.openstack.org/14587

Changed in swift:
status: New → In Progress
Changed in swift:
assignee: Zhou Yuan (yuan-zhou) → John Dickinson (notmyname)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to swift (master)

Reviewed: https://review.openstack.org/14587
Committed: http://github.com/openstack/swift/commit/ba3babaddee4f9f7bdd11fc82225813256ad8c1b
Submitter: Jenkins
Branch: master

commit ba3babaddee4f9f7bdd11fc82225813256ad8c1b
Author: yuan-zhou <email address hidden>
Date: Thu Nov 1 00:05:42 2012 -0700

    Allow object-expirer to delete the last version of an object

    Fix bug 1067677

    When we delete a versioned object, the last version will be poped out from the
    versiones container. When a versioned object is expired and deleted by object-
    expirer, the last version is restored but remains in the versions container
    instead of getting deleted. The reason is object-expirer will set
    'X-If-Delete- At' header when deleteing an object. However this is for the
    current version - not for the last version. When the object-server is trying
    to delete the last version, the transaction will fail with error:
    X-If-Delete-At and X-Delete-At do not match. Delete the 'X-If-Delete-At'
    field in the later built delete request would help to solve this issue.

    This patch, without the test, was first proposed by
    Zhou Yuan <email address hidden>.

    Change-Id: I62c97e6a0f140888497e189129825865fb6f7966

Changed in swift:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in swift:
milestone: none → 1.7.5
status: Fix Committed → Fix Released
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.