ceph/qa
Venky Shankar 2958a7cd12 qa: set mds config with config set for a particular test
The config setting is persisted in ceph.conf after the MDSs are started.
However, the test case fails the file system causing the active MDS to
restart and pick up the new config. When the file system is marked joinable,
then, if the MDS which was standby before the file system was marked failed
takes over as the rank, the updated setting are not used by this MDS.

In the failed test, merging directory fragment is disabled, but since
the config is set in ceph.conf, the (earlier standby) MDS which acquires
a rank uses the default merge size causing the dirfrag to merge and
thereby tripping the test.

Fixes: http://tracker.ceph.com/issues/57087
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2023-11-21 12:11:53 +05:30
..
archs
btrfs
cephfs Revert "Revert "Merge PR #53077 into main"" 2023-09-08 14:15:35 +05:30
client
clusters
config qa/config/crimson_qa_overrides: ignore POOL_APP_NOT_ENABLED 2023-08-27 08:25:41 +00:00
crontab qa/tests: enabled smoke tests on main, quincy and reef 2023-10-19 10:26:55 -07:00
debug
distros qa/distros: remove a-supported-distro.yaml that pointed to centos 7.2 2023-09-22 17:23:18 -04:00
erasure-code
libceph
machine_types
mds
mgr_ttl_cache
mon/bootstrap
mon_election
msgr
nightlies
objectstore qa/suites: change all osd objectstore filestore 2023-02-12 06:11:29 +00:00
objectstore_cephfs qa/suites: change all osd objectstore filestore 2023-02-12 06:11:29 +00:00
objectstore_debug qa/suites: change all osd objectstore filestore 2023-02-12 06:11:29 +00:00
overrides
packages
qa_scripts
rbd qa/suites/rbd: drop redundant ignorelist entries 2023-10-10 12:50:36 +02:00
releases
rgw qa/rgw: add new POOL_APP_NOT_ENABLED failures to log-ignorelist 2023-08-24 12:29:09 -04:00
rgw_bucket_sharding
rgw_frontend
rgw_pool_type
standalone tests/standalone: fix scrub-related tests following command changes 2023-11-15 03:14:15 -06:00
suites qa/suites/rbd: Cleanup of MIRROR_IMAGE_MODE 2023-11-14 18:28:02 +05:30
tasks qa: set mds config with config set for a particular test 2023-11-21 12:11:53 +05:30
timezone
workunits Merge PR #54414 into main 2023-11-19 08:58:14 +05:30
.gitignore
.qa
CMakeLists.txt
find-used-ports.sh
loopall.sh
lsan.supp qa/lsan.supp: update heap_profiler suppression and ASAN_OPTIONS 2023-06-08 14:16:01 +00:00
Makefile
mypy.ini
README
run_xfstests_qemu.sh
run_xfstests-obsolete.sh
run_xfstests.sh
run-standalone.sh
runallonce.sh
runoncfuse.sh
runonkclient.sh
setup-chroot.sh
test_import.py
tox.ini QA: Add D4N teuthology suite 2023-06-06 14:04:47 -04:00
valgrind.supp valgrind: UninitCondition under __run_exit_handlers suppression 2023-09-21 16:55:30 +03:00

ceph-qa-suite
-------------

clusters/    - some predefined cluster layouts
suites/      - set suite

The suites directory has a hierarchical collection of tests.  This can be
freeform, but generally follows the convention of

  suites/<test suite name>/<test group>/...

A test is described by a yaml fragment.

A test can exist as a single .yaml file in the directory tree.  For example:

 suites/foo/one.yaml
 suites/foo/two.yaml

is a simple group of two tests.

A directory with a magic '+' file represents a test that combines all
other items in the directory into a single yaml fragment.  For example:

 suites/foo/bar/+
 suites/foo/bar/a.yaml
 suites/foo/bar/b.yaml
 suites/foo/bar/c.yaml

is a single test consisting of a + b + c.

A directory with a magic '%' file represents a test matrix formed from
all other items in the directory.  For example,

 suites/baz/%
 suites/baz/a.yaml
 suites/baz/b/b1.yaml
 suites/baz/b/b2.yaml
 suites/baz/c.yaml
 suites/baz/d/d1.yaml
 suites/baz/d/d2.yaml

is a 4-dimensional test matrix.  Two dimensions (a, c) are trivial (1
item), so this is really 2x2 = 4 tests, which are

  a + b1 + c + d1
  a + b1 + c + d2
  a + b2 + c + d1
  a + b2 + c + d2

A directory with a magic '$' file, or a directory whose name ends with '$',
represents a test where one of the non-magic items is chosen randomly.  For
example, both

 suites/foo/$
 suites/foo/a.yaml
 suites/foo/b.yaml
 suites/foo/c.yaml

and

 suites/foo$/a.yaml
 suites/foo$/b.yaml
 suites/foo$/c.yaml

is a single test, either a, b or c.  This can be used in conjunction with the
'%' file in the same (see below) or other directories to run a series of tests
without causing an unwanted increase in the total number of jobs run.

Symlinks are okay.

One particular use of symlinks is to combine '%' and the latter form of '$'
feature.  Consider supported_distros directory containing fragments that define
os_type and os_version:

 supported_distros/%
 supported_distros/centos.yaml
 supported_distros/rhel.yaml
 supported_distros/ubuntu.yaml

A test that links supported_distros as distros (a name that doesn't end with
'$') will be run three times: on centos, rhel and ubuntu.  A test that links
supported_distros as distros$ will be run just once: either on centos, rhel or
ubuntu, chosen randomly.

The teuthology code can be found in https://github.com/ceph/teuthology.git