ceph/qa
Ilya Dryomov 5011cc926c qa/suites/krbd: run unmap subsuite with msgr1 only
pre-single-major.yaml kernel doesn't have any of the monitor client
fixes that came in 4.6.  If the connection is closed, it closes the
session and retries only after 10 seconds.  On top of that, there is
nothing to prevent it from picking the same monitor when reconnecting.
This means that when given both v1 and v2 ports (which look like two
different monitors), it is susceptible to mount_timeout (60 seconds):

  $ sudo rbd map img
  rbd: sysfs write failed
  In some cases useful info is found in syslog - try "dmesg | tail".
  rbd: map failed: (5) Input/output error

  [  822.242313] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  832.265494] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  842.296175] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  852.326924] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  862.357611] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  872.388373] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)
  [  882.676136] libceph: mon0 172.21.15.132:3300 socket closed (con state CONNECTING)

Unlike newer kernels that return ETIMEDOUT, it returns EIO.

Newer kernels are much more aggressive about retries and will pick
a different monitor when reconnecting, hence they are always able to
establish the session in time.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2019-10-30 19:51:55 +01:00
..
archs
btrfs
cephfs qa: whitelist new FS_INLINE_DATA_DEPRECATED health warning 2019-09-19 09:15:29 -04:00
client
clusters qa: enable dashboard tests to be run with "--suite rados/dashboard" 2019-10-21 12:31:51 +02:00
config
crontab qa/tests - upped priority for upgrades on master, otherwise they never lock nodes for testing and fail 2019-08-14 09:43:02 -07:00
debug qa: enable dashboard tests to be run with "--suite rados/dashboard" 2019-10-21 12:31:51 +02:00
distros qa/distros: add SLE-12-SP3 and SLE-15-SP1 2019-10-24 09:47:22 +02:00
erasure-code
libceph
machine_types
mds
mon/bootstrap
msgr
nightlies
objectstore qa: add AvlAllocator test script 2019-10-17 20:54:57 +08:00
objectstore_cephfs
overrides
packages qa: add ceph-daemon 2019-10-04 20:33:35 -05:00
qa_scripts
rbd krbd: modprobe before calling build_map_buf() 2019-10-17 16:52:43 +02:00
releases
rgw_frontend
rgw_pool_type qa/rgw: whitelist SLOW_OPS failures against ec pools 2019-10-15 14:57:31 -04:00
standalone qa/standalone/test_ceph_damon.sh: test with python2 and python3 2019-10-28 12:15:47 -05:00
suites qa/suites/krbd: run unmap subsuite with msgr1 only 2019-10-30 19:51:55 +01:00
tasks Merge pull request #31171 from liewegas/bug-42496 2019-10-27 23:57:57 +08:00
timezone
workunits Merge pull request #31023 from idryomov/wip-krbd-udev-enumerate-retry 2019-10-29 11:40:45 +01:00
.gitignore
find-used-ports.sh
loopall.sh
Makefile
README
run_xfstests_qemu.sh
run_xfstests-obsolete.sh
run_xfstests.sh
run-standalone.sh qa/run-standalone.sh: fix python path 2019-08-19 12:33:05 -05:00
runallonce.sh
runoncfuse.sh
runonkclient.sh
setup-chroot.sh
tox.ini
valgrind.supp

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 represents a test where one of the other
items is chosen randomly. For example,

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

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

Symlinks are okay.

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