Loic Dachary [Thu, 11 Feb 2016 11:47:55 +0000 (18:47 +0700)]
python: use pip instead of python setup.py
python setup.py develop may try to pull dependencies from the net and
has no way to collect them from the wheelhouse that was populated by
install-deps.sh. Use pip install -e instead
Kefu Chai [Thu, 11 Feb 2016 12:08:32 +0000 (20:08 +0800)]
tests: ceph-disk.sh: use "readlink -f" instead for fullpath
if $PATH has ".." in it, and the program happen to be located in
"..", `which program` will print `../program` instead of its fullpath,
so we should always use `readlink -f` for the fullpath.
Boris Ranto [Thu, 11 Feb 2016 11:03:06 +0000 (12:03 +0100)]
selinux: Allow log files to be located in /var/log/radosgw
We do suggest users to put their logs in /var/log/radosgw in the
documentation at times. We should also label that directory with
ceph_var_log_t so that ceph daemons can also write there.
The commit also updates the man page for this policy. This man page is
automatically generated by
* sepolicy manpage -p . -d ceph_t
and have not been reloaded in a while. Hence, it contains few more
changes than the new radosgw directory.
Jianjian Huo [Thu, 11 Feb 2016 01:44:33 +0000 (20:44 -0500)]
os/bluestore: fix a typo in SPDK path parsing
SPDK block path with bluestore is something like spdk:55cd2e404bd73932.
The size of the prefix to compare should be 5.
sizeof(SPDK_PREFIX)-1 returns 5, while sizeof(SPDK_PREFIX-1) returns 8.
Signed-off-by: Jianjian Huo <samuel.huo@gmail.com>
root [Tue, 9 Feb 2016 20:03:24 +0000 (12:03 -0800)]
rgw: user quota may not adjust on bucket removal
Description:
If the user/admin removes a bucket using --force/--purge-objects options with s3cmd/radosgw-admin respectively, the user stats will continue to reflect the deleted objects for quota purposes, and there seems to be no way to reset them. User stats need to be sync'ed prior to bucket removal.
Solution:
Sync user stats before removing a bucket.
Fixes: #14507 Signed-off-by: Edward Yang eyang@us.fujitsu.com
John Spray [Tue, 9 Feb 2016 12:15:56 +0000 (12:15 +0000)]
osdc/Objecter: drop lock to unregister asok hooks
unregister blocks until any running hook has
completed, and that running hook might
be one that takes the objecter lock, so you
can't hold it while unregistering.
Piotr Dałek [Mon, 8 Feb 2016 13:05:03 +0000 (14:05 +0100)]
msg/simple: significantly reduce minimal memory usage of Pipes
Pipe class instance weights over 17 KB in size, and most of it is used by
msgvec structure, which weights 16 KB. Reduce it to 4KB by reducing
number of iovecs in this array down to 256 (= 1024/4). This won't cause
noticeable perf decrease, as even under extreme loads, we exceed 256 used
iovecs in only less than 1% of all write calls. For high-density nodes and
large clusters, savings will exceed hundreds of megabytes per node.
Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
Piotr Dałek [Mon, 8 Feb 2016 12:21:55 +0000 (13:21 +0100)]
msg/async: significantly reduce minimal memory usage of AsyncConnections
AsyncConnection class instance weights over 18 KB in size, and most of it
is used by msgvec structure, which weights 16 KB. Reduce it to 4KB by reducing
number of iovecs in this array down to 256 (= 1024/4). This won't cause
noticeable perf decrease, as even under extreme loads, we exceed 256 used
iovecs in only less than 1% of all write calls. For high-density nodes and
large clusters, savings will exceed hundreds of megabytes per node.
Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
Kefu Chai [Mon, 8 Feb 2016 05:37:43 +0000 (13:37 +0800)]
crush/CrushTester: workaround a bug in boost::icl
the boost::icl in boost v1.55 has a bug when working with libc++,
> Assertion failed: (this->_map.find(inter_val) == this->_map.end()),
> function gap_insert, file
> /usr/local/include/boost/icl/interval_base_map.hpp, line 555.
see https://svn.boost.org/trac/boost/ticket/9501 and
https://svn.boost.org/trac/boost/ticket/9987
the bug was fixed in boost v1.56. as a workaround we use the the
`set` from `boost::container` instead of the `std::set` from libc++.
we should drop this workaround once we bump the supported boost
version from 1.42 to 1.56.
This Op would change the tmp osd_primary_affinity, but the osd_primary_affinity
is declared as ceph::shared_ptr, so this would change the osdmap too. When this
round encode_pending is proposed fail. We may call encode_pending again, but the
osdmap is changed last round, so the pending_inc would be wrong.
Fixes: #14686 Signed-off-by: Xinze Chi <xinze@xsky.com>
Kefu Chai [Sat, 6 Feb 2016 16:26:59 +0000 (00:26 +0800)]
librbd: replace atomic_t with std::atomic<int>
it fails to compile with clang, and turns out it should be
`ceph::atomic_t`, but I take this chance to replace it
with std::atomic<> to phase out atomic_t.
actually we are verifying if the variable is an instance of
specified class. for example, the `prepare.data` should be
a `PrepareFilestoreData` if `--bluestore` is not specified.
Haomai Wang [Sat, 6 Feb 2016 06:52:43 +0000 (14:52 +0800)]
AsyncConnection: avoid debug log in cleanup_handler
local connection will be stop and call cleanup_handler after messenger
is down
introduced in
commit(https://github.com/ceph/ceph/commit/9da2fffd31562ed5d0b795d7862b3ebec66aba40)
Adam C. Emerson [Mon, 14 Sep 2015 17:35:10 +0000 (13:35 -0400)]
osdc: Update to use C++11 concurrency
The only externally visible change is that Objecter::get_osdmap_read
and Objedcter::put_osdmap_read have been removed in favor of
Objecter::with_osdmap.
It can be used like:
objecter->with_osdmap([&](const OSDMap& o) { o.do_stuff(); };
int x = objecter->with_osdmap([&](const OSDMap& o) {
return get_thing(id); });
objecter->with_osdmap(std::mem_fn(&OSDMap::do_stuff));
int x = objecter->with_osdmap(std::mem_fn(&OSDMap::get_thing),
id);
The choice between the style of the first two examples or the second two
is arbitrary and depends on what you prefer.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Matt Benjamin [Fri, 5 Feb 2016 21:43:43 +0000 (16:43 -0500)]
cmake: add libboost_system to EXTRALIBS
This concisely fixes several unittest builds, and reflects the
fact that this library dependency has moved into several areas
of the codebase (libcephfs, librbd, librgw).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>