Description of problem:
After changing the master zone, doing a period commit fails.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Configure us-1 as master zone with a multizone configuration with us-1 and us-2 as the zones.
2. Make us-2 as master. #radosgw-admin zone modify --rgw-zone=us-2 --master
3. Do a period update --commit and a radosgw restart on both the rgw nodes.
Period commit throws an error:
# radosgw-admin period update --commit
request failed: (22) Invalid argument
Reason: Cannot commit period on zone 4f20d429-9e6c-4c0c-993b-7c2dd3f7d263, it must be sent to the period's master zone 8d3e4783-47e9-44b8-b772-07ad5888c028.
failed to commit period: (22) Invalid argument
get --staging command shows the period updated with us-2 as master. But commit throws error. Data fails to sync.
Logs in http://pastebin.test.redhat.com/371616
Added upstream ticket http://tracker.ceph.com/issues/15828 and fixed in https://github.com/ceph/ceph/pull/9055.
https://github.com/ceph/ceph/pull/9081 was merged to jewel and is present in v10.2.1.
Tested on 10.2.2-18. The procedure is:
On the rgw zone which has to be made primary:
1. radosgw-admin zone modify --rgw-zonegroup=us --rgw-zone=us-2 --access_key=secret --secret=secret --endpoints=http://rgw2:80 --default --master
2. radosgw-admin period update --commit
3. "radosgw-admin period get" should show the new master as us-2
4. Restart gateway
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.