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: check that source OSD is valid for MOSDRepScrub #3947

Merged
2 commits merged into from Mar 16, 2015

Conversation

Projects
None yet
3 participants
@ghost

ghost commented Mar 11, 2015

Make sure the message we got from the peer OSD is valid. Specifically,
this avoids a race like this:

  • A marks down B
  • B sends MOSDRepScrub
  • A accepts connection from B as new
  • A replies to scrub
  • B crashes because msgr seq 1 < expected seq 1000+

See #8880 for the most recent fix for requests.

Fixes: #9555
Backport: giant, firefly
Signed-off-by: Sage Weil sage@redhat.com
(cherry picked from commit 847e5e1)

@ghost ghost added bug fix core labels Mar 11, 2015

@ghost ghost self-assigned this Mar 11, 2015

@ghost ghost added this to the firefly milestone Mar 11, 2015

@loic-bot

This comment has been minimized.

loic-bot commented Mar 11, 2015

FAIL: the output of run-make-check.sh on centos-7 for fd508bd is http://paste2.org/kGIGafCv

:octocat: Sent from GH.

@loic-bot

This comment has been minimized.

loic-bot commented Mar 11, 2015

FAIL: the output of run-make-check.sh on centos-7 for 8527507 is http://paste2.org/tyDaIzpK

:octocat: Sent from GH.

osd: pass Message* to most require_* helpers
These do nothing but op->get_req(); pass the Message* explicitly so that
non-OpRequest callers can use them.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 707a111)

Conflicts:
	src/osd/OSD.cc
	src/osd/OSD.h
        significantly changes had to be made but in a simple way and
	stays within the scope of the original commit
@loic-bot

This comment has been minimized.

loic-bot commented Mar 11, 2015

FAIL: the output of run-make-check.sh on centos-7 for 8527507 is http://paste2.org/eBPDZL4K

:octocat: Sent from GH.

osd: check that source OSD is valid for MOSDRepScrub
Make sure the message we got from the peer OSD is valid.  Specifically,
this avoids a race like this:

- A marks down B
- B sends MOSDRepScrub
- A accepts connection from B as new
- A replies to scrub
- B crashes because msgr seq 1 < expected seq 1000+

See #8880 for the most recent fix for requests.

Fixes: #9555
Backport: giant, firefly
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 847e5e1)

Conflicts:
    src/osd/OSD.cc: require functions first argument is now a reference
@loic-bot

This comment has been minimized.

loic-bot commented Mar 11, 2015

SUCCESS: the output of run-make-check.sh on centos-7 for 73c169d is http://paste2.org/PY42HdUC

:octocat: Sent from GH.

@athanatos

This comment has been minimized.

Contributor

athanatos commented Mar 16, 2015

lgtm

ghost pushed a commit that referenced this pull request Mar 16, 2015

Merge pull request #3947 from dachary/wip-9555-firefly
osd: check that source OSD is valid for MOSDRepScrub

Reviewed-by: Samuel Just <sjust@redhat.com>

@ghost ghost merged commit a30379d into ceph:firefly Mar 16, 2015

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment