Commit Graph

1152 Commits

Author SHA1 Message Date
Ilya Dryomov
6bddef8ecf qa: rbd: don't modprobe, chown sysfs files or udevadm settle
This is a followup to 38a572011d ("qa: rbd/map-snapshot-io.sh: don't
chown sysfs files") for the rest of the workunits:

- /sys/bus/rbd/add_single_major is used if present, so chown'ing
  /sys/bus/rbd/add doesn't help.  Use sudo on rbd map instead.

- Don't modprobe or udevadm settle - rbd CLI tool takes care of that.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2016-05-13 17:51:45 +02:00
Ilya Dryomov
38a572011d qa: rbd/map-snapshot-io.sh: don't chown sysfs files
/sys/bus/rbd/add_single_major is used if present, so chown'ing
/sys/bus/rbd/add doesn't help.  Use sudo on rbd map instead.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2016-05-11 19:59:42 +02:00
Kefu Chai
f7331fdc3f Merge pull request #8786 from tchaikov/wip-btrfs-sudo
test: sudo to rm btrfs subvol

Reviewed-by: Erwan Velu <erwan@redhat.com>
2016-05-09 22:38:07 +08:00
Li Peng
9c2d785382 cleanup: python: remove warnings of 'new blank line at EOF'
When applying ceph patches, some warnings reported, e.g.
qa/workunits/mon/caps.py:367: new blank line at EOF.

Signed-off-by: Li Peng <lip@dtdream.com>
2016-05-09 11:28:42 +08:00
Sage Weil
7f1bc1b038 qa/workunits/rados/test_rados_tool: fix copy paste error
Signed-off-by: Sage Weil <sage@redhat.com>
2016-05-06 14:54:41 -04:00
David Zafman
79669c4b06 rados, test: Restrict usage of --prefix in cleanup
As a precaution to using cleanup for mass deletion of other
objects, only allow --prefix which begins with "benchmark_data."

Signed-off-by: David Zafman <dzafman@redhat.com>
2016-05-06 13:44:16 +02:00
David Zafman
4e0b0d9a7e test: Test rados cleanup command with and without --all
Signed-off-by: David Zafman <dzafman@redhat.com>
2016-05-06 13:44:16 +02:00
David Zafman
1976ee7fc2 test: Test rados ls with --all option
Signed-off-by: David Zafman <dzafman@redhat.com>
2016-05-06 13:44:16 +02:00
David Zafman
89edda8494 test: Find ceph command as CEPH_TOOL like rados command
Signed-off-by: David Zafman <dzafman@redhat.com>
2016-05-06 13:44:16 +02:00
Sage Weil
034cf6875a Merge pull request #8837 from liewegas/wip-reweight
mon/OSDMonitor: max_osds must be > 0 for reweight-by-*

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
2016-05-04 09:05:14 -04:00
Jason Dillaman
2c88ef8682 Merge pull request #8809 from trociny/wip-rbd-mirror-asok-restart
rbd-mirror: admin socket commands to start/stop/restart mirroring

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2016-05-03 14:13:46 -04:00
Jason Dillaman
4175db609c Merge pull request #8775 from cy-lee/fix-15604-rbd-nbd-write-error
rbd-nbd: fix rbd-nbd aio callback error handling

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2016-05-03 13:47:31 -04:00
Josh Durgin
f5e22ce64b Merge pull request #8864 from trociny/fixup-rbd-mirror-test-log
qa/workunits/rbd: fix rbd-mirror log file name

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-05-02 14:26:54 -07:00
Mykola Golub
a22cf518f9 rbd-mirror: admin socket commands to start/stop/restart mirroring
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2016-05-02 22:52:02 +03:00
Ali Maredia
4321bb64ed test: added env var setting to make check scripts
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-05-02 10:19:31 -04:00
Mykola Golub
4c28fc2aa3 qa/workunits/rbd: fix rbd-mirror log file name
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2016-05-01 22:04:46 +03:00
Mykola Golub
21790484dc rbd-mirror: make image replayer asok commands available when not started
Initially the asok commands were registered only after the image
replayer start (and unregistered on stop) because their names were
built using remote pool and image names, which became known only after
start.

Now, the asok commands are registered on the image replayer construction
using the temporary name "remote_pool_name/global_image_id". They are
re-registered using "remote_pool_name/remote_image_name" when the
image replayer is started.  Also the commands are not unregistered on
the image replayer stop.

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2016-05-01 18:33:54 +03:00
Sage Weil
475cc08c33 qa/workunits/ceph-helpers.sh: make ceph-osd behave on ext4
Signed-off-by: Sage Weil <sage@redhat.com>
2016-04-30 17:12:05 -04:00
cy.l@inwinstack.com
f8f6c1dc86 Fix RBD-NBD aio_callback error handling
Tracker-Id: #15604

Signed-off-by: Chang-Yi Lee <cy.l@inwinstack.com>
2016-04-30 15:11:18 +08:00
Sage Weil
84bd0dce18 mon/OSDMonitor: max_osds must be > 0 for reweight-by-*
Include a few test cases.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-04-29 22:01:56 -04:00
Josh Durgin
dcd11a1f26 qa/workunits/rbd: add env vars to adapt rbd_mirror.sh to teuthology
With these set, this script can work in teuthology, where we want to
control the how daemons run and their log locations, valgrind
settings, etc. The workunit task always sets CEPH_ID, and allows
other env vars to be configured optionally.

The RBD_MIRROR_USE_EXISTING_CLUSTER option can also speed up local testing.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2016-04-29 10:01:51 -07:00
Josh Durgin
5fe64fa806 qa: rbd_mirror.sh: change parameters to cluster rather than daemon name
Daemon name is only useful to differentiate asok and pid filenames, so
just inline its use there. Everywhere else replace the 'daemon'
parameter with cluster or local_cluster as appropriate.

Remove the CLUSTER{1,2}_DAEMON vars as well, since they are no longer
used.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2016-04-29 10:01:29 -07:00
Jason Dillaman
6cb1ff491e Merge pull request #8442 from trociny/wip-rbd-mirror-status
rbd-mirror: replay status now available via the rbd api and cli

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2016-04-29 12:11:21 -04:00
Mykola Golub
f15cd51a1d qa/workunits/rbd: test mirror status in pool directory
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2016-04-29 11:47:49 +03:00
Kefu Chai
a5b2658f9f test: sudo to rm btrfs subvol
"btrfs subvolume {list,delete}" needs root privilege even if the current
user owns this subvol. one can only list/delete he/she is the root, or
if the btrfs volume was mounted with "-o user_subvol_rm_allowed".

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-04-28 02:05:26 +08:00
Tamil Muthamizhan
cafe8825ec Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
removed ceph-deploy folder, as its been already replaced with ceph-tests.
2016-04-26 16:13:28 -07:00
Sage Weil
c3b595f284 Merge pull request #7942 from xiexingguo/xxg-wip-fixdirtyinc
mon: OSDMonitor: improve pool creation logic

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Xiaoxi Chen <xiaoxchen@ebay.com>
2016-04-22 20:21:57 -04:00
Tamil Muthamizhan
0fd358b877 Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
renamed the workunit and test to reflect reality and for better clarity
2016-04-22 18:25:46 -04:00
Sage Weil
bbdec192f8 Merge pull request #8691 from flyd1005/master
cleanup: Fix typos, change prefered to preferred

Reviewed-by: Sage Weil <sage@redhat.com>
2016-04-22 10:37:48 -04:00
Sage Weil
5698cd4889 Merge pull request #8530 from wjwithagen/patch-6
ceph-helpers.sh: only use mon*pid files when killing MONs

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-04-22 09:35:41 -04:00
Li Peng
88ae8c38d0 Fix typos, change prefered to preferred 2016-04-22 15:18:44 +08:00
Kefu Chai
558863ad6d test: set a default $CEPH_ROOT env variable
in cf24535, we use $CEPH_ROOT to specify the $top_srcdir to unify
cmake and autotools, but this breaks ceph-qa-suite/tasks/workunit.py,
as it only clones the necessary qa/workunits directory, and does not
pass $CEPH_ROOT to the test scripts. so we need to set a default
$CEPH_ROOT if it is not set.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-04-19 00:19:07 +08:00
Ali Maredia
cf24535ed7 cmake: cephtool-test-rados/mds/osd passing in cmake
Replaced relative paths in test/cephtool-test-mon.sh,
qa/workunits/cephtool/test.sh, and test/cephtool-test-mon.sh
to work with CEPH_FOO environment variables set in cmake.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-04-14 20:48:21 -04:00
Ali Maredia
59568e59ed cmake: encode-decode-non-regression.sh passing in cmake
Replaced relative paths in encode-decode-non-regression.sh
to work with CEPH_FOO environment variables set in
cmake.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-04-14 20:48:19 -04:00
Ali Maredia
e0f400fdef cmake: test-ceph-helpers working
Moved all the libraries in CMAKE_BINARY_DIR/lib
and all the binaries in CMAKE_BINARY_DIR/bin. Set
various environment variables for test-ceph-helpers.
Put those variables throughout
qa/workunits/ceph-helpers.sh.

NOTE: This is a very rough draft of these fixes.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-04-14 20:48:19 -04:00
Josh Durgin
6956da8c0c Merge pull request #8511 from dillaman/wip-15436
librbd: IO deadlock when dynamically enabling/disabling features

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-14 08:58:57 -07:00
Willem Jan Withagen
d5376c545b ceph-helpers.sh: only use mon*pid files when killing MONs
FreeBSD once in a while forgets to remove *pid files (this is probably a bug).
But taking care of it this way is probably much in line of what is actually needs to be done

Signed-off-by: Willem Jan Withagen wjw@digiware.nl
2016-04-11 11:45:29 +02:00
Jason Dillaman
a33ee34fcf qa/workunits/rbd: switch qemu test script shell to bash
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-04-09 12:59:00 -04:00
Greg Farnum
f6209798f8 Merge remote-tracking branch 'github/wip-fs-lockouts' into greg-fs-testing
Protect a number of unstable/experimental features behind durable flags

https://github.com/ceph/ceph/pull/8383

Reviewed-by: John Spray <john.spray@redhat.com>
2016-04-07 17:07:16 -07:00
Greg Farnum
ea1b276e7e test: update tests for new flag requirements
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2016-04-07 16:40:23 -07:00
xie xingguo
be07a418b5 mon: OSDMonitor: add a guard for prepare_remove_snaps()
Method preprocess_remove_snaps() is designed to fast check whether
we can safely handle a remove-snaps-request without changing the osdmap.
The original design is to be able to handle snaps from multiple pools,
including those snaps even from a non-existent pool by simply skipping
over them. However, this method will quit on successfully detecting
any vaild snap which is truly needed to be removed and forward this
request to prepare_remove_snaps() for further processing.

From the above analysis, the prepare_remove_snaps() method will
theoretically also encounter some snaps which possibly belong to
non-existent pools.

This pr solves the above problem by adding a sanity check against
pool existense associated with the specified snap to be removed, which
shall be considered as a defensive move and makes prepare_remove_snaps()
stronger.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2016-04-07 17:31:58 +08:00
xie xingguo
c98d97e37c mon: OSDMonitor: return EINVAL if we unable to parse addr
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2016-04-07 17:29:21 +08:00
xie xingguo
fd6c023f49 mon: OSDMonitor: reply ENOENT if specified osd does not exist
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2016-04-07 17:29:21 +08:00
Sage Weil
82e9f94523 Merge pull request #8428 from liewegas/wip-rest-mds
ceph-rest-api: fix fs/flag/set
2016-04-06 16:10:53 -04:00
Erwan Velu
c5fa83f586 tests: Avoiding a fixed 10sec sleep in test_mon_cephdf_commands()
The current code was waiting 10s to expect the file being put.
If the file was put in a shorter time than 10s, the test just waits for
nothing reducing the execution speed of that test.

This patch simply check if the file is actually available every second
during 10sec to exit prematurely.

This patch saves exactly 10 sec on a local system, surely a little bit
less on an infra but still saves time.
Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00
Erwan Velu
62bdde2cd2 tests: Optmizing sleep sequence in cephtool/test.sh
The actual code double the wait time between two calls leading to a
possible 511s of waiting time which sounds a little bit excessive.

This patch offer to reduce the global wait time to 300s and test more
often the rados status to exit the loop earlier. In a local test, that
saves 6 secs per run.
Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00
Erwan Velu
8a49a86901 tests: Moving sleep call after action in ceph_watch_wait()
ceph_watch_wait() is doing a sleep _before_ doing the test which could
stop this loop.

It's better doing the action first as it could exit immediately and
avoid a useless sleep.

That's a minor optimization but everything count when trying to get
something smooth.

Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00
Erwan Velu
0d254d8916 tests: Reducing sleep time for osd to be up
OSDs are taking some time to be up but waiting 10 secs seems execessive
here between two loops. In the worst case, we can be in a situation of
waiting 10secs for nothing as we are just a few microsecs after the osd
is up.

This patch simply reduce the sleep from 10 to 1 seconds.
Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00
Erwan Velu
0eea2436d9 tests: Optimizing kill_daemons() sleep time
It could sounds like nothing but the actual sleeping rampup is counter
productive.

The code does : kill <proc>; sleep 0; kill <proc>; sleep 0; kill <proc;
sleep 1; and then it grows up 120 seconds by a smooth rampup.

But actually there is almost no chance the process dies so fast meaning
that by default we switch to the sleep 1.

Moving from sleep 0 to sleep 1 doesn't seems a big win but as
kill_daemons() is called very often we can save a lot of time by then
end.

This patch offer to sleep first a 1/10th of second instead of 0 and then
1/20th of second instead of 0.

The sleep call is also moved after the kill call as it's not necessary
waiting before executing the command.

This patch makes the running time of a test like osd-scrub-repair.sh
dropping from 7m30 to 7m7.

Saving another ~30seconds is an interesting win at make check level.
Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00
Erwan Velu
84197f1641 tests: Optimizing wait_for_clean()
wait_for_clean() is a very common call when running the make check.
It does wait the cluster to be stable before continuing.

This script was doing the same calls twice and could be optimized by
making the useful calls only once.

is_clean() function was checking num_pgs & get_num_active_clean()
The main loop itself was also calling get_num_active_clean()

This patch is inlining the is_clean() inside this loop to benefit from a
single get_num_active_clean() call. This avoid a useless call of (ceph +
xmlstarlet).

This patch does move all the 'timer reset' conditions into an else
avoiding spawning other ceph+xmlstarlet call while we already know we
should reset the timer.

The last modification is to reduce the sleeping time as the state of the
cluster is changing very fast.

This whole patch could looks like almost not a big win but for a test
like test/osd/osd-scrub-repair.sh, we drop from 9m56 to 9m30 while
reducing the number system calls.

At the scale of make check, that's a lot of saving.

Signed-off-by: Erwan Velu <erwan@redhat.com>
2016-04-05 09:36:25 +02:00