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
Merged

osd: fix repair when recorded digest is wrong #5468

9 commits merged into from Aug 30, 2015

Conversation

dzafman
Copy link
Contributor

@dzafman 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.

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)
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)
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)
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)
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)
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)
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)
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)
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)
@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
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 December 18, 2015 21:42
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants