]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
tasks/scrub_test.py: Make test deterministic by updating digests
authorDavid Zafman <dzafman@redhat.com>
Thu, 20 Oct 2016 00:10:29 +0000 (17:10 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 16 Nov 2016 20:32:10 +0000 (12:32 -0800)
ceph_test_rados: Get coverage of digest updates in deep-scrub/repair

Signed-off-by: David Zafman <dzafman@redhat.com>
suites/rados/basic/tasks/scrub_test.yaml
suites/rados/thrash/workloads/pool-snaps-few-objects.yaml
tasks/scrub_test.py

index 938e73e3418515eadbfcd7f81370b18eb9bad02a..3b3b69dfad394678e0953778e8da6c32bade064b 100644 (file)
@@ -14,6 +14,9 @@ overrides:
     - 'attr name mistmatch'
     - 'deep-scrub 1 missing, 0 inconsistent objects'
     - 'failed to pick suitable auth object'
+    conf:
+      osd:
+        osd deep scrub update digest min age: 0
 tasks:
 - install:
 - ceph:
index b5f6dca6c506cce40f2b8ab2fa3433783070967e..1f0759d962493171cfc0b2dcd24626f50982d348 100644 (file)
@@ -1,3 +1,7 @@
+override:
+  conf:
+    osd:
+      osd deep scrub update digest min age: 0
 tasks:
 - rados:
     clients: [client.0]
index ca6d9cfbb4e384f2f12926923b296e6f55876eb9..2c22bb6e4bf066e3251527b0e26700f777fa41f9 100644 (file)
@@ -293,6 +293,10 @@ def test_list_inconsistent_obj(ctx, manager, osd_remote, pg, acting, osd_id,
     omap_val = 'val'
     manager.do_rados(mon, ['-p', pool, 'setomapval', obj_name,
                            omap_key, omap_val])
+    # Update missing digests, requires "osd deep scrub update digest min age: 0"
+    pgnum = get_pgnum(pg)
+    manager.do_pg_scrub(pool, pgnum, 'deep-scrub')
+
     messup = MessUp(manager, osd_remote, pool, osd_id, obj_name, obj_path,
                     omap_key, omap_val)
     for test in [messup.rm_omap, messup.add_omap, messup.change_omap,
@@ -344,6 +348,9 @@ def task(ctx, config):
         - attr name mistmatch
         - deep-scrub 1 missing, 0 inconsistent objects
         - failed to pick suitable auth object
+      conf:
+        osd:
+          osd deep scrub update digest min age: 0
     - scrub_test:
     """
     if config is None:
@@ -387,6 +394,10 @@ def task(ctx, config):
     manager.do_rados(mon, ['-p', 'rbd', 'setomapheader', obj_name, 'hdr'])
     log.info('err is %d' % p.exitstatus)
 
+    # Update missing digests, requires "osd deep scrub update digest min age: 0"
+    pgnum = get_pgnum(pg)
+    manager.do_pg_scrub('rbd', pgnum, 'deep-scrub')
+
     log.info('messing with PG %s on osd %d' % (pg, osd))
     test_repair_corrupted_obj(ctx, manager, pg, osd_remote, obj_path, 'rbd')
     test_repair_bad_omap(ctx, manager, pg, osd, obj_name)