Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rgw: complete versioning enablement after sending it to meta master #12444

Merged
merged 1 commit into from Jan 26, 2017

Conversation

oritwas
Copy link
Member

@oritwas oritwas commented Dec 12, 2016

Fixes: http://tracker.ceph.com/issues/18003
Signed-off-by: Orit Wasserman owasserm@redhat.com

@oritwas oritwas requested a review from cbodley December 12, 2016 13:04
@oritwas oritwas changed the title rgw: complete versioning enablment after sending it to meta master rgw: complete versioning enablement after sending it to meta master Dec 12, 2016
@cbodley
Copy link
Contributor

cbodley commented Dec 12, 2016

added a test case for this to test_multi.py and verified this fix 👍

there is some potential for races between the secondary zone's call to put_bucket_instance_info() and its sync from the master

consider a racing put_acls operation on the same bucket instance that happens on the master zone, which results in master mdlog entries [set_bucket_versioning, put_acls]. if the secondary zone processes the meta sync for both of these entries before calling put_bucket_instance_info(), it would overwrite the put_acls

on the other hand, say the put_acls operation happens first and the master mdlog looked like [put_acls, set_bucket_versioning]. if the secondary zone calls put_bucket_instance_info() first, then the metadata synced from the master would appear to go back in time for the put_acls until it caught back up to the set_bucket_versioning

addressing these races is probably not in scope for this bug fix, but we should think about how to handle it for all of the bucket requests that we forward

@idealguo
Copy link

I have one question: if meta_master returns success and local zone(zone group) is failed for some reason. RGW will return failed to user, but the versioning state has been updated in meta_master, it is inconsistency for user.

@oritwas
Copy link
Member Author

oritwas commented Dec 13, 2016

It should be a temporary situation until the sync process run than the state will be consist again

@idealguo
Copy link

idealguo commented Dec 13, 2016

Thanks, if user got failed, and then he can find the new versioning state by API after sync process run. This may be unreasonable

@oritwas
Copy link
Member Author

oritwas commented Jan 3, 2017

@oritwas
Copy link
Member Author

oritwas commented Jan 8, 2017

@yehudasa , can we merge this?

@yehudasa yehudasa merged commit 10a7ff0 into ceph:master Jan 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants