Project

General

Profile

Bug #19830

radosgw-admin validate tier type while setting

Added by Abhishek Lekshmanan almost 7 years ago. Updated about 4 years ago.

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

0%

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

Description

One can get into difficult situations with multisite and incorrect tier-types
an eg would be:
on a secondary zone do

$ radosgw-admin zone modify --rgw-zone=us-west --tier-type=es --tier-config=endpoint=http://localhost:9200 ..
$ radosgw-admin period update --commit # this succeeds 

Now the radosgw's in this zone wouldn't start anymore and further period updates from rgw-admin will error out as sync module init fails

The only possible way to salvage this situation would be to go back to the master, modify zonegroup via infile to set the right tier type and go the the secondary and do a realm pull with keys etc, maybe input validation while doing a tier creation would be the easiest way out?

History

#1 Updated by Yehuda Sadeh almost 7 years ago

The command here in itself is not invalid. You could and should be able to modify the tier type of the zone. What happens if you try to revert the tier type (e.g., set it to "rgw" instead). Does the command fail to execute then?

#2 Updated by Abhishek Lekshmanan almost 7 years ago

Yehuda Sadeh wrote:

The command here in itself is not invalid. You could and should be able to modify the tier type of the zone. What happens if you try to revert the tier type (e.g., set it to "rgw" instead). Does the command fail to execute then?

Well the zone modify itself would succeed, the subsequent period commit fails with

$ ../src/mrun dc2 radosgw-admin period commit 
2017-05-05 10:54:31.662401 7f9d2dfaa6c0 -1 ERROR: failed to init sync module instance, ret=-2
couldn't init storage provider

#3 Updated by Abhishek Lekshmanan almost 7 years ago

basically init_complete() fails since it will fail at RGWSyncModulesManager::create_instance() and since period commit or any other rgw admin comments that isn't a raw storage op would fail, so even though though zone modify succeeds, it can't be committed in the period and hence subsequent changes are not possible from this zonegroup anymore. Maybe we could do a check in zone modify on the tier_type by asking the sync modules manager?

#4 Updated by Abhishek Lekshmanan almost 7 years ago

  • Status changed from New to Fix Under Review

#5 Updated by Daniel Gryniewicz about 4 years ago

  • Status changed from Fix Under Review to Resolved

Also available in: Atom PDF