]> 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>
Thu, 9 Feb 2017 17:16:08 +0000 (09:16 -0800)
ceph_test_rados: Get coverage of digest updates in deep-scrub/repair

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit e000ab2f46b7b98a223176a2a25bb7195e601af6)

qa/suites/rados/basic/tasks/scrub_test.yaml
qa/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml
qa/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 9988e21ad25089307ca9ba34c10a0ed51f723462..53d7d1382de8c85ca1518a530a61f1f1aa5cbd14 100644 (file)
@@ -291,6 +291,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,
@@ -342,6 +346,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:
@@ -382,6 +389,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)