From e000ab2f46b7b98a223176a2a25bb7195e601af6 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Wed, 19 Oct 2016 17:10:29 -0700 Subject: [PATCH] tasks/scrub_test.py: Make test deterministic by updating digests ceph_test_rados: Get coverage of digest updates in deep-scrub/repair Signed-off-by: David Zafman --- suites/rados/basic/tasks/scrub_test.yaml | 3 +++ .../thrash/workloads/pool-snaps-few-objects.yaml | 4 ++++ tasks/scrub_test.py | 11 +++++++++++ 3 files changed, 18 insertions(+) diff --git a/suites/rados/basic/tasks/scrub_test.yaml b/suites/rados/basic/tasks/scrub_test.yaml index 938e73e3418..3b3b69dfad3 100644 --- a/suites/rados/basic/tasks/scrub_test.yaml +++ b/suites/rados/basic/tasks/scrub_test.yaml @@ -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: diff --git a/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml b/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml index b5f6dca6c50..1f0759d9624 100644 --- a/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml +++ b/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml @@ -1,3 +1,7 @@ +override: + conf: + osd: + osd deep scrub update digest min age: 0 tasks: - rados: clients: [client.0] diff --git a/tasks/scrub_test.py b/tasks/scrub_test.py index ca6d9cfbb4e..2c22bb6e4bf 100644 --- a/tasks/scrub_test.py +++ b/tasks/scrub_test.py @@ -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)