Douglas Fuller [Mon, 6 Apr 2015 21:36:18 +0000 (14:36 -0700)]
RBD: update expunge set for latest test, parameterize test script
Update expunge set for xfstests to known-good set for RHEL7 and Ubuntu 14.04.
Expunged tests without justifying comments are long-running and have not yet
been thoroughly investigated.
Add an environment variable (optionally passed from xfstests_url variable in
test YAML) to override the default xfstests repo.
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Douglas Fuller [Mon, 6 Apr 2015 21:35:20 +0000 (14:35 -0700)]
RBD: build prerequisites for latest xfstests and update test configuration
To standardize results from xfstests, install specific versions of xfstests,
xfsprogs, and xfsdump in /tmp. Move test mountpoints to /tmp/cephtest to allow
access for fsgqa user expected by xfstests.
XXX: xfsdump required significant hacks to build and install on Ubuntu 14.04.
A developer removed the definitions of the min and max macros; this commit is
reverted by this script. The installation paths are difficult to override and
the installer breaks (trying to ln one of the binaries to itself) when an
alternate installation location is specified. This script ignores this error
(make -k install || true).
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Jason Dillaman [Tue, 7 Apr 2015 19:39:13 +0000 (15:39 -0400)]
librbd: moved snap_create header update notification to initiator
When handling a proxied snap_create operation, the client which
invoked the snap_create should send the header update notification
to avoid a possible race condition where snap_create completes but
the client doesn't see the new snapshot (since it didn't yet receive
the notification).
Fixes: #11342 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* and remove `local-check` target. because we have killed all warnings,
and `make check` depends on `am-all` actually. so previously, `make check`
basically does nothing at all for validating the man pages' syntax.
`make all` has rendered them already.
* do not run sphinx-build if $(top_srcdir)/doc/man does not exist. this
is exactly the case of `make install` from a dist tarball.
* remove generated man pages in `make maintainer-clean` not in `make
clean`, because we don't ship .rst files in the dist tarball.
sphinx complains when it failed to find the referenced file using the
absolute path whose root is the $(top_srcdir)/doc/man when rendering
man pages. but it is able to find it when rendering the html, because
build-doc specifies $(top_srcdir)/doc/ as the source directory.
man: ignore fieldlist when getting desc for manpages
this change will enable us to specify `:orphan:` in the fieldlist of
a manpage rst file, otherwise sphinx-build complains at seeing it if
it is not referenced by a toc doc.
sphinx requires that a document tree to be in a single directory,
and the man pages are references by our document. so a simple solution
would be to put all the rst file under a single directory.
sphinx complains:
SEVERE: Duplicated ID: "cmdoption-radosgw-admin--bucket"
at seeing duplicated `--bucket` option in radosgw-admin.rst. and
there is a global `--bucket` for all commands of radosgw, so remove
the one for the `quota` command.
The docker image created by docker-tests.sh for a given operating system
is parameterized with the user name. If two users on the same machine
try to use the same image, they will compete and fail with an error
like:
... user get supplementary groups Unable to find user ...
Add the $USER to the image name to reflect the fact that they contain an
account for this user.
spec.in: sphinx -b man needs sphinx > 1.0 (part 2)
Instead of listing the operating system versions that do not require the
python-sphinx10 package, switch to listing the operating system versions that
require the python-sphinx10 package. It's easier to maintain because
there only are a few.
Zhiqiang Wang [Tue, 7 Apr 2015 05:43:36 +0000 (13:43 +0800)]
librbd: start readahead from m_last_pos when the size of the continuing
triggering request is big enough
If the size of the read triggering the continuing readahead is such big
that exceeding m_readahead_pos, should do the readahead starting from
m_last_pos.
Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
This can be done better in a separate script, which puts these in
CEPH_EXTRA_CONFIGURE_ARGS. In particular, this lets us enable
lttng for gitbuilder builds, but not release builds.
This can be done better in a separate script, which puts these in
CEPH_EXTRA_CONFIGURE_ARGS. In particular, this lets us enable
lttng for gitbuilder builds, but not release builds.
Add the test_pool_read_write function to share the rados put / get test
that demonstrate the osd that has been created can actually be used. Use
it from the both the regular device and dmcrypt tests.
tests: ceph-disk.sh dmcrypt tests use test_setup_dev_and_run
Instead of duplicating the device construction / destruction logic for
dmcrypt tests, use test_setup_dev_and_run to do it. It is now able to
recover from devmapper leftover which may occur when a cryptsetup test
fails.
Move test_activate_dev to test_setup_dev_and_run and make it
run the function given in argument. test_activate_dev calls
test_setup_dev_and_run and no longer needs to implement device
allocation or destruction.
Address all possible failure cases, when ceph-disk.sh completes or when
it starts with leftover from a previous interrupted run. It is assumed
that ceph-disk.sh will crash at any point.
* umount all mount points that belong to ceph-disk.sh (check the
absolute path of the directory)
* dmsetup remove all device mapper nodes found to hold a loop device
that ceph-disks.sh no longer uses
* losetup --detach all loop devices that ceph-disks.sh no longer uses
run-make-check.sh relies on ccache. If ~/.ccache is not bind mounted and
$HOME is not bind mounted either, ./configure will fail with an obscure
error because it cannot create the directory. Create the directory if it
does not exist already and avoid this problem. The worst that can happen
is that an empty .ccache directory is created and never used which
should not be a major inconvenience.
On RHEL 6 and CentOS 6 sphinx 1.0+ which is required to build man pages
is packaged as sphinx10 instead of sphinx and the binary is
sphinx-1.0-build instead of sphinx-build.