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
jewel: ReplicatedBackend: take read locks for clone sources during recovery #12978
Conversation
http://tracker.ceph.com/issues/18583 should be backported at the same time - it fixes a bug in this |
@asheplyakov To implement the previous comment, could you please:
If any of this doesn't make sense, just ping me. |
Otherwise, we run the risk of a clone source which hasn't actually come into existence yet being used if we grab a clone which *just* got added the the ssc, but has not yet actually had time to be created (can't rely on message ordering here since recovery messages don't necessarily order with client IO!). Fixes: http://tracker.ceph.com/issues/17831 Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 68defc2) Conflicts: src/osd/ReplicatedBackend.cc: PGBackend::failed_push() takes a single pg_shard_t in jewel src/osd/ReplicatedPG.h: trivial: get_obc() is not declared as override in jewel, no pgb_{set,clear}_object_snap_mapping() in jewel
The only users calc_*_subsets might try to read_lock an object which is missing on the primary. Returning false in those cases is perfectly reasonable and avoids the problem. Fixes: http://tracker.ceph.com/issues/18583 Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 3833440)
55b7d5d
to
509de4d
Compare
@jdurgin thanks for a tip |
@jdurgin This passed a rados suite at http://tracker.ceph.com/issues/17851#note-45 with some (few, unrelated) failures. OK to merge? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
This passed another rados run at http://tracker.ceph.com/issues/17851#note-53 |
See: http://tracker.ceph.com/issues/18809 This reverts commit 8e69580, reversing changes made to c05730c.
See: http://tracker.ceph.com/issues/18809 This reverts commit 8e69580, reversing changes made to c05730c. Signed-off-by: Samuel Just <sjust@redhat.com>
Revert "Merge pull request #12978 from asheplyakov/jewel-18581" Reviewed-by: Josh Durgin <jdurgin@redhat.com>
See: http://tracker.ceph.com/issues/18809 This reverts commit 8e69580, reversing changes made to c05730c. Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 0cf7a61) Conflicts: src/osd/ReplicatedPG.h
See: http://tracker.ceph.com/issues/18809 This reverts commit 8e69580, reversing changes made to c05730c. Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 0cf7a61) Conflicts: src/osd/ReplicatedPG.h
See: http://tracker.ceph.com/issues/18809 This reverts commit 8e69580, reversing changes made to c05730c. Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 0cf7a61)
NOTE: this backport was later reverted by #13280 so both the backport and its revert are contained in 10.2.6 |
@smithfarm You are great :) |
http://tracker.ceph.com/issues/18581
http://tracker.ceph.com/issues/18724