]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: Fix the way that auto repair triggers after regular scrub
authorDavid Zafman <dzafman@redhat.com>
Thu, 30 May 2019 15:26:19 +0000 (08:26 -0700)
committerDavid Zafman <dzafman@redhat.com>
Thu, 27 Jun 2019 20:47:15 +0000 (13:47 -0700)
commit4a4c1fde89c821e3dad4d8c338eef7091d3594a3
treee396b83f42de7c8eebf9c7758b5f8189e874729e
parent7597a9ad73b2f3d5781cfba022c958dd4be97d16
osd: Fix the way that auto repair triggers after regular scrub

We used a trick to get auto repair to happen after scrub errors
which reset the scrub/deep-scrub stamps.  This not only
looks bad to the user, but causes health warnings.  Instead
use a new scrubber flag need_auto which causes reg_next_srub()
to set deadline for immediate scrubbing.  It also causes time_for_deep
to be set so that auto repair triggers.

Every regular scrub was triggering a deep scrub. Check
scrubber.authoritative.size() (scrub error count), so regular scrub doesn't
trigger deep-scrub when there are no errors.

Caused by: 2202e5d0b107795837ce79ffce2a980e8c12fc62

Fixes: http://tracker.ceph.com/issues/40073
Signed-off-by: David Zafman <dzafman@redhat.com>
src/crimson/osd/pg.h
src/osd/PG.cc
src/osd/PG.h
src/osd/PeeringState.h