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/PGLog: fix index for parent and child log on split #13493

Merged
merged 2 commits into from Feb 18, 2017

Conversation

Projects
None yet
4 participants
@liewegas
Member

liewegas commented Feb 17, 2017

This fixes dup op detection post-split.

http://tracker.ceph.com/issues/18975

@liewegas liewegas requested a review from athanatos Feb 17, 2017

@athanatos

This comment has been minimized.

Contributor

athanatos commented Feb 17, 2017

fwiw, it probably isn't doing a return by value, that's normally a case where rvo will kick in. The core bug was not calling index on ret? I think that looks right.

@liewegas

This comment has been minimized.

Member

liewegas commented Feb 17, 2017

@jdurgin

fix makes sense, but we should add a tracker ticket for backport to jewel/kraken

liewegas added some commits Feb 17, 2017

osd/PGLog: reindex properly on pg log split
When pg_log_t::split_out_child() runs it builds the list, which means the
old indexes are wrong (the point to bad memory), but index() will not
rebuild them because ever since b858e86
we won't rebuild them if they are already built.

Fix that by calling unindex() before the split.

Further, the new child log also needs to be indexed.  Fix that too.

Fixes: http://tracker.ceph.com/issues/18975
Signed-off-by: Sage Weil <sage@redhat.com>
osd/PGLog: avoid return by value on ginormous log
Signed-off-by: Sage Weil <sage@redhat.com>

@liewegas liewegas added the needs-qa label Feb 17, 2017

@tchaikov tchaikov merged commit 49740fc into ceph:master Feb 18, 2017

3 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodifed Submodules submodules for project are unmodified
Details
default Build finished.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment