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: fix repair when recorded digest is wrong #5468

Merged
9 commits merged into from Aug 30, 2015

Conversation

Projects
None yet
3 participants
@dzafman
Copy link
Member

dzafman commented Aug 4, 2015

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

This is a backport of wip-digest-repair branch from original pull request #4365.

liewegas added some commits Mar 26, 2015

osd: record digest if object is clean (vs entire scrub chunk)
If an individual object is clean, record it in the missing_digest map.
If not, leave it out.  This lets us drop the old condition that only
recorded any digests if the entire scrub chunk was clean.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit c39e0e5)
osd: be precise about "known" vs "best guess"
We cannot assume that the auth info has the "known" digest; all replicas
may have a matching digest that does not match the oi, or we may choose
a different auth info for some other reason.  Verify that the digest
matches the oi before calling it "known".

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 546d1c7)
osd: be slightly paranoid about value of okseed
The scrubber.seed value is set based on the peer feature; check for that
too explicitly, and assert the scrubber.seed value matches.

No change in behavior here.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit e34d31b)
osd: move recorded vs on disk digest warning into be_compare_scrubmaps
This is a better place for it.  While we are here, change the wording to
clearly call out the 'recorded' digest (from object_info_t) vs the 'on
disk' digest (what we observed during scrub).

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit cf349ff)
osd: log a scrub error when we can't pick an auth object
If we really can't find a suitable auth, log an error.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit a476d8f)
osd: fix fallback logic; move into be_select_auth_object
The fallback behavior was printing a promising message but then doing
a 'continue' and not actually scrubbing the object.  Instead, fall back to
a less-bad auth inside be_select_auth_object.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit b597db5)
osd: fix condition for loggin scrub errors
We may have an error to log even though the authoritative map is empty:
when we have a digest that doesn't match all replicas.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit d23766b)
osd: include newlines in scrub errors
We may log more than one of these in a scrubmap; make sure they are
not concatenated.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 2b3dd1b)
osd: repair record digest if all replicas match but do not match
If the recorded digest does not match the replicas, and all replicas
match, then (on repair) fix the recorded digest.

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

@dzafman dzafman assigned ghost Aug 4, 2015

@dzafman dzafman added this to the hammer milestone Aug 4, 2015

@ghost ghost changed the title Wip 12577 hammer osd: Inconsistent PGs that ceph pg repair does not fix Aug 4, 2015

@dzafman dzafman changed the title osd: Inconsistent PGs that ceph pg repair does not fix osd: fix repair when recorded digest is wrong Aug 4, 2015

ghost pushed a commit that referenced this pull request Aug 30, 2015

Loic Dachary
Merge pull request #5468 from ceph/wip-12577-hammer
osd: fix repair when recorded digest is wrong

Reviewed-by: Loic Dachary <ldachary@redhat.com>

@ghost ghost merged commit 6a949e1 into hammer Aug 30, 2015

@ktdreyer ktdreyer deleted the wip-12577-hammer branch Dec 18, 2015

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.