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

osd: ensure new osdmaps commit before publishing them to pgs #8096

Merged
merged 3 commits into from Mar 17, 2016

Conversation

liewegas
Copy link
Member

No description provided.

Signed-off-by: Sage Weil <sage@redhat.com>
@athanatos
Copy link
Contributor

LGTM!

@tchaikov
Copy link
Contributor

lgtm

handle_osd_map and the PGs use different sequencers when writing
their updates.  We therefore need to make sure new osdmaps are
committed to disk before we expose them to PGs, lest they update
their info to reference a new osdmap that hasn't actually
committed yet.

This doesn't happen with FileStore because transactions are
ordered when they are queued, but it does affect BlueStore.

Fix by splitting handle_osd_map into two phases, one that just
persists stuff, and the second half that publishes the new maps to
the rest of the OSD.

Fixes: ceph#15073
Signed-off-by: Sage Weil <sage@redhat.com>
handle_osd_map now adds OSDMaps to the cache as it receives them
but before they are stable.  Ensure that we don't try to use them.

Signed-off-by: Sage Weil <sage@redhat.com>
liewegas added a commit that referenced this pull request Mar 17, 2016
osd: ensure new osdmaps commit before publishing them to pgs

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
@liewegas liewegas merged commit 1302ad1 into ceph:master Mar 17, 2016
@liewegas liewegas deleted the wip-15073 branch March 17, 2016 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants