Project

General

Profile

Actions

Bug #55487

open

bucket lifecycle for aborting old multipart uploads does not work on non-master multisite zone buckets

Added by Chris Durham almost 2 years ago. Updated almost 2 years ago.

Status:
Triaged
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

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

Description

I have a two site multisite configuration with rgw buckets that replicate bucket data in both directions. On a given bucket, I have added a lifecycle config that aborts multipart uploads that have been active for over 7 days. This works fine for multipart uploads that were started on the master zone. However, If the multipart upload starts on the slave zone, it never gets aborted.

While I think I understand why this occurs, (I think it has to do with lifecycle operations perhaps only happening on the master zone and then getting replicated - but multipart uploads are specific to a zone), this is unfortunate as I have a misbehaving app that writes to buckets on the slave zone that now requires me to manually abort dozens of multipart uploads every few days.
A lifecycle would be great for this, but alas, it only works on the master zone.

I am using 16.2.8 on Rocky 8.5

I have attached a sample lifecycle policy. The policy does make it to the slave zone, but multipart uploads started on the slave zone never actually get aborted.


Files

lc.json (248 Bytes) lc.json example lifecycle policy for aborting mpart uploads Chris Durham, 04/28/2022 09:17 PM

Related issues 1 (1 open0 closed)

Related to rgw - Bug #44268: multisite/lc: lc doesn't run in the slaveFix Under ReviewMatt Benjamin

Actions
Actions #1

Updated by Chris Durham almost 2 years ago

Chris Durham wrote:

I have a two site multisite configuration with rgw buckets that replicate bucket data in both directions. On a given bucket, I have added a lifecycle config that aborts multipart uploads that have been active for over 7 days. This works fine for multipart uploads that were started on the master zone. However, If the multipart upload starts on the slave zone, it never gets aborted.

While I think I understand why this occurs, (I think it has to do with lifecycle operations perhaps only happening on the master zone and then getting replicated - but multipart uploads are specific to a zone), this is unfortunate as I have a misbehaving app that writes to buckets on the slave zone that now requires me to manually abort dozens of multipart uploads every few days.
A lifecycle would be great for this, but alas, it only works on the master zone.

I am using 16.2.8 on Rocky 8.5

I have attached a sample lifecycle policy. The policy does make it to the slave zone, but multipart uploads started on the slave zone never actually get aborted.

Argh, I am using 16.2.7 on Rocky 8.5, NOT 16.2.8....

Actions #2

Updated by Casey Bodley almost 2 years ago

  • Related to Bug #44268: multisite/lc: lc doesn't run in the slave added
Actions #3

Updated by Casey Bodley almost 2 years ago

this is a known issue with metadata sync. the lifecycle policy does replicate, but not its entry in the 'lc list'. you can run 'radosgw-admin lc reshard fix' on the secondary zone to update the 'lc list'

Actions #4

Updated by Matt Benjamin almost 2 years ago

  • Status changed from New to Triaged
  • Assignee set to Matt Benjamin
Actions #5

Updated by Casey Bodley almost 2 years ago

@Matt Li: i guess RGWSI_Bucket_SObj::store_bucket_instance_info() and remove_bucket_instance_info() is where we'd want to update the 'lc list'. they're called from both metadata sync, and from local metadata writes

Actions #6

Updated by Ilya Dryomov almost 2 years ago

  • Target version deleted (v16.2.8)
Actions

Also available in: Atom PDF