Bug #19817
closedmultisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period
0%
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]
Updated by Casey Bodley almost 7 years ago
- Status changed from New to Fix Under Review
- Backport set to jewel kraken
Updated by Casey Bodley almost 7 years ago
- Related to Bug #19816: multisite: set_latest_epoch not atomic added
Updated by Yuri Weinstein almost 7 years ago
Updated by Casey Bodley almost 7 years ago
- Status changed from Fix Under Review to Pending Backport
Updated by Nathan Cutler almost 7 years ago
- Copied to Backport #20720: jewel: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period added
Updated by Nathan Cutler almost 7 years ago
- Copied to Backport #20721: kraken: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period added
Updated by Nathan Cutler over 6 years ago
- Status changed from Pending Backport to Resolved