Project

General

Profile

Bug #19817

multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period

Added by Casey Bodley 6 months ago. Updated about 1 month ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
Start date:
05/01/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
jewel kraken
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Release:
Needs Doc:
No

Description

If radosgw first learns about a new period from RGWPeriodPuller, it doesn't call RGWPeriod::reflect() to update its zonegroup objects in rados. This means that later radosgw-admin zone/zonegroup commands will operate on old configuration, and a 'period commit' can revert earlier changes that happened on another cluster.

For example, in a 3-zone configuration:

cluster1: create realm/zonegroup/zone1, period commit
cluster2: realm pull, create zone2, period commit
cluster3: realm pull, create zone3, period commit

[cluster2 uses RGWPeriodPuller to pull new period from master on cluster1, but local zonegroup still only contains zone1,zone2]

cluster2: 'zone modify --rgw-zone=zone2 --master' -> period commit

[resulting period no longer contains a zone3]


Related issues

Related to rgw - Bug #19816: multisite: set_latest_epoch not atomic Resolved 05/01/2017
Copied to rgw - Backport #20720: jewel: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period Resolved
Copied to rgw - Backport #20721: kraken: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period Rejected

History

#1 Updated by Casey Bodley 6 months ago

  • Status changed from New to Need Review
  • Backport set to jewel kraken

#2 Updated by Casey Bodley 6 months ago

  • Related to Bug #19816: multisite: set_latest_epoch not atomic added

#3 Updated by Yehuda Sadeh 6 months ago

  • Priority changed from Normal to High

#4 Updated by Yuri Weinstein 3 months ago

Casey Bodley wrote:

https://github.com/ceph/ceph/pull/14915

merged

#5 Updated by Casey Bodley 3 months ago

  • Status changed from Need Review to Pending Backport

#6 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #20720: jewel: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period added

#7 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #20721: kraken: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period added

#8 Updated by Nathan Cutler about 1 month ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF