Page MenuHomePhabricator

Run swift-object-expirer as part of the swift cluster
Closed, ResolvedPublic

Description

When using X-Delete-After, or other expiration headers, swift will properly return 404 after an object has expired, but the listings will still return the expired objects. Per https://bugs.launchpad.net/swift/+bug/1069849 this is intended behaviour and the swift-object-expirer service is necessary for the listings to stop returning expired objects.

New users of expiration include the new data transfers between analytics and production, along with upcoming work on expiring thumbnails. In general implementations will have to handle 404 anyways, but my reading suggests that without swift-object-expirer the expired objects are never actually deleted, the api layer simply checks the object and reports 404 for existing-but-expired objects.

Event Timeline

CDanis triaged this task as Medium priority.Aug 16 2019, 12:57 PM

Change 601429 had a related patch set uploaded (by Dave Pifke; owner: Dave Pifke):
[operations/puppet@production] Swift object servers: enable object-expirer

https://gerrit.wikimedia.org/r/601429

Change 601429 merged by Filippo Giunchedi:
[operations/puppet@production] Swift object servers: enable object-expirer

https://gerrit.wikimedia.org/r/601429

Merged the patch above, apologies for the late action on this.

These are the steps I think are left to do: (happy to review patches)

  • statsd mappings to get metrics reported to Prometheus
  • enable on one ms-be host in each of eqiad and codfw
Aklapper added a subscriber: dpifke.

Removing inactive task assignee (please do so as part of offboarding processes).

Change 932197 had a related patch set uploaded (by MVernon; author: MVernon):

[operations/puppet@production] hiera: set ms-be2068 to be an object expirer

https://gerrit.wikimedia.org/r/932197

Change 932197 merged by MVernon:

[operations/puppet@production] hiera: set ms-be2068 to be an object expirer

https://gerrit.wikimedia.org/r/932197

Change 932803 had a related patch set uploaded (by MVernon; author: MVernon):

[operations/puppet@production] hiera: set ms-be1068 to be an object expirer

https://gerrit.wikimedia.org/r/932803

Change 932803 merged by MVernon:

[operations/puppet@production] hiera: set ms-be1068 to be an object expirer

https://gerrit.wikimedia.org/r/932803

MatthewVernon claimed this task.
MatthewVernon subscribed.

Done (though we might want to think about refactoring the puppet code a bit here)

Change 933471 had a related patch set uploaded (by MVernon; author: MVernon):

[operations/puppet@production] swift: roll object_expirer into cluster_info (remove profile)

https://gerrit.wikimedia.org/r/933471

Change 933478 had a related patch set uploaded (by MVernon; author: MVernon):

[operations/puppet@production] swift: roll object_expirer into cluster_info

https://gerrit.wikimedia.org/r/933478

Change 933478 abandoned by MVernon:

[operations/puppet@production] swift: roll object_expirer into cluster_info

Reason:

following puppet office hours, abandon this in favour of https://gerrit.wikimedia.org/r/c/operations/puppet/+/933471

https://gerrit.wikimedia.org/r/933478

Change 933471 merged by MVernon:

[operations/puppet@production] swift: roll object_expirer into cluster_info (remove profile)

https://gerrit.wikimedia.org/r/933471