]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/ceph: osd_scrub_pgs: reissue scrub requests in loop
authorSage Weil <sage@redhat.com>
Mon, 19 Jun 2017 15:59:10 +0000 (11:59 -0400)
committerSage Weil <sage@redhat.com>
Mon, 19 Jun 2017 16:00:12 +0000 (12:00 -0400)
The scrub commands are not reliable: if the OSD doesn't happen to
be connected at the time the command is issued it may not get
delivered.  Re-request scrubs for each PG that has not yet been
scrubbed so that we don't wait forever when the original request
is dropped.

Signed-off-by: Sage Weil <sage@redhat.com>
qa/tasks/ceph.py

index a64d9aae602648a0bb452edad3dca1d07668b1d5..fa43530a6f5cffd72b16110e927c7550873bc57a 100644 (file)
@@ -1078,6 +1078,13 @@ def osd_scrub_pgs(ctx, config):
             gap_cnt = 0
         else:
             gap_cnt += 1
+            if gap_cnt % 6 == 0:
+                for (pgid, tmval) in timez:
+                    # re-request scrub every so often in case the earlier
+                    # request was missed.  do not do it everytime because
+                    # the scrub may be in progress or not reported yet and
+                    # we will starve progress.
+                    manager.raw_cluster_cmd('pg', 'deep-scrub', pgid)
             if gap_cnt > retries:
                 raise RuntimeError('Exiting scrub checking -- not all pgs scrubbed.')
         if loop: