Jason Dillaman [Mon, 29 Feb 2016 02:27:50 +0000 (21:27 -0500)]
rbd: deprecate image format 1
The rbd cli will warn about the deprecation when attempting to create
image format 1 images. librbd will log an error message when opening
a format 1 RBD image.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Marcus Watts [Sat, 27 Feb 2016 07:34:14 +0000 (02:34 -0500)]
cmake fix: build civetweb with the right include path.
In an earlier commit, civetweb.c got moved into a separate cmake 'object'
library civetweb_common_objs so that it could be built just once for use
with several different targets. At the time, there was a separate global
"include_directory" to give the right include path for including "civetweb.h".
A later commit in master created an rgw_a library, and restricted civetweb.h's
include path for only building rgw_a objects. So, as the product of
these these two commits, the target_include_directories command for the
civetweb include path now needs to be applied to civetweb_common_objs
and not rgw_a.
Marcus Watts [Tue, 23 Feb 2016 23:35:21 +0000 (18:35 -0500)]
Use fixed version of civetweb to avoid warning.
The warning about SSLv23_client_method is because when using dynamic
linking, this should always be non-zero. That's inside of civetweb,
so this commit is to pull the submodule up to the fix.
Marcus Watts [Thu, 11 Feb 2016 00:14:06 +0000 (19:14 -0500)]
Use ld.so to link in ssl crypto (cmake changes).
Using dlopen() to load in ssl crypto makes me cringe.
Also it requires either installing the devel package,
or appending library versioning to the library name
civetweb tries to load, which is ugly. This is only
a license problem for people whose system distribution
does not include openssl.
vsjulu [Mon, 22 Feb 2016 19:40:41 +0000 (11:40 -0800)]
XIO: Changes to fix incorrect ip being assigned in case of multiple RDMA ports.remove rdma local and return error instead to avoid issues with using rdma_local incase of multiple ports.
This allows the http client to turn off ssl certificate peer checking,
which is turned on by default. This is useful in cases like when
Keystone is SSL terminated with a self signed certificate.
The option `rgw_keystone_verify_ssl` (default true) can be toggled if
self signed certs are used, so that swift and s3 apis using keystone
authentication can work.
Fixes: #14583 Reported-by: Karol Mroz <mroz.karol@gmail.com> Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Casey Bodley [Thu, 25 Feb 2016 18:07:54 +0000 (13:07 -0500)]
rgw: use pimpl pattern for RGWPeriodHistory
this removes the dependency on RGWPeriod from rgw_rados.h, which breaks
a circular dependency between rgw_rados.h -> rgw_metadata.h ->
rgw_period_history.h -> rgw_rados.h
Reported-by: Willem Jan Withagen <wjw@digiware.nl> Signed-off-by: Casey Bodley <cbodley@redhat.com>
Erwan Velu [Thu, 25 Feb 2016 17:06:17 +0000 (18:06 +0100)]
test/ceph_objectstore_tool: Deleting btrfs subvolumes before exiting
When running the ceph_objectstore_tool test suite, we shall delete the btrfs
subvolumes that have been created before trying deleting the content unless that will generate a permission denied
issue.
While running a make check on a btrfs system, many subvolumes are let at the end
of the build. It's pretty common to have several hundreds of those.
btrfs is pretty sensible to the path when requesting a subvolume removal.
The current code was misleading the path and didn't deleted the remaining
volumes.
This patch list the current subvolumes, filter thoses created by the
test process and ajust the path because brtfs reports
erwan/chroot/ceph/src/testdir/test-7202/dev/osd1/snap_439
while regarding the current working directory we want to delete :
testdir/test-7202/dev/osd1/snap_439
Piotr Dałek [Thu, 25 Feb 2016 14:12:52 +0000 (15:12 +0100)]
config: increase default async op threads
Default value of two async threads is enough for light workloads,
but is insufficient for heavy ones, reducing maximum throughput on
slower CPUs that have plenty of logical cores. Three async threads
give noticeable perf jump without any noticeable downsides.
Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
Kefu Chai [Thu, 25 Feb 2016 13:06:04 +0000 (21:06 +0800)]
osd: always cleanup the scrub results
the destructor of Scrub::Store asserts that `this->results` should
always be empty when it is free'd. before this change, if we are
repairing, the results is not flushed or cleaned up, this crashes
osd daemon when a new PG internval comes. also we should not keep
the results around even we don't want to populate them to the omap
if we are repairing, it's just a waste.
Loic Dachary [Mon, 22 Feb 2016 04:38:46 +0000 (11:38 +0700)]
tests: test_pidfile.sh lingering processes
For the mon, using ps aux to find the process will only show part of the
command line and the $RUNID may be missing. For the OSD, the $RUNID is
passed using an environment variable and will not show at all.
There is no need to test both ceph-osd and ceph-mon since they both end
up in the same code path, pidfile_write. Add a log line that only shows
when the --pid-file is empty and grep for it in the simplest possible
way.
The TEST_pidfile test failed to kill a process because there was
no pidfile with its pid. This is fixed by backuping the pidfile before
it is modified.
Kefu Chai [Sat, 30 Jan 2016 07:22:49 +0000 (15:22 +0800)]
osd: persist inconsistent snapsets using omap
the inconsistent snapsets are identified in ReplicatedPG::_scrub()
after we compared the authorized objects with their replica/shards.
these inconsistent information are stored in the omap of objects
with prefix "SCRUB_SS_".
Kefu Chai [Sat, 30 Jan 2016 06:38:48 +0000 (14:38 +0800)]
osd: persist inconsistent objs using omap
persist inconsistent objects found when comparing the ScrubMaps
collected from replica/shards. the discrepancies between the auth
copy and the replica are identified as inconsistencies. and hence
encoded into the omap of an object of the temp coll of the PG in
question.
scrub_types.{h,cpp} are introduced to hide the details of how we
persist the scrub types from the librados client.
Josh Durgin [Fri, 12 Feb 2016 04:38:07 +0000 (20:38 -0800)]
cls_rbd: add methods for keeping track of mirrored images
These will track whether local images should be mirrored, and map them
to a unique global id. There's a state field for safely disabling
mirroring while operating on multiple objects.
Those two tests are starting a mon with run_mon.
Trying to delete the files while the daemon are still alive is impossible.
This patch removes the explicit 'rm' and let the teardown doing the cleaning
stuff by stopping daemons & cleaning content.
By using this patch, make check is now sucessful on ceph-disk.
suffix = '', prefix = 'mnt.', dir = '/var/lib/ceph/tmp'
def mkdtemp(suffix="", prefix=template, dir=None):
"""User-callable function to create and return a unique temporary
directory. The return value is the pathname of the directory.
Arguments are as for mkstemp, except that the 'text' argument is
not accepted.
The directory is readable, writable, and searchable only by the
creating user.
Caller is responsible for deleting the directory when done with it.
"""
if dir is None:
dir = gettempdir()
names = _get_candidate_names()
for seq in xrange(TMP_MAX):
name = names.next()
file = _os.path.join(dir, prefix + name + suffix)
try:
> _os.mkdir(file, 0700)
E OSError: [Errno 2] No such file or directory: '/var/lib/ceph/tmp/mnt.KoAV85'
Robert LeBlanc [Mon, 15 Feb 2016 17:52:05 +0000 (17:52 +0000)]
test/common/test_weighted_priority_queue Fix the unit tests since the
changes to WeightedPriorityQueue there is no strict round robin
dequeueing of classes. Removed that test from the unittest.
Signed-off-by: Robert LeBlanc <robert.leblanc@endurance.com>