Sage Weil [Tue, 30 May 2017 17:54:16 +0000 (13:54 -0400)]
crush: set default tunables to jewel
For new clusters.
This is the last "disruptive" tunable change we've made (where adjusting/
fixing it requires lots of data movement). For new clusters a lower bound
of jewel seems pretty reasonable, and this has been upstream in Linux
for a while now.
Sage Weil [Tue, 30 May 2017 19:58:53 +0000 (15:58 -0400)]
buffer: remove buffer_data mempool
We are explicitly accounting for buffers via arbitrary pools, defaulting
to buffer_anon, so we don't need buffer_data anymore. It leads to
double-counting.
Sage Weil [Mon, 29 May 2017 01:21:05 +0000 (21:21 -0400)]
buffer: allow buffers to map into arbitrary mempools
- default is buffer_anon
- buffer_data includes *all* buffers across all mempools, and is the
*actual* allocation (includes raw_combined).
- buffer_meta is other buffer-related overhead.
myoungwon oh [Wed, 31 May 2017 14:13:56 +0000 (23:13 +0900)]
test/osd/TestRados.cc: run test after finishing redirect setup
set-redirect test creates more objects than default due to redirect mapping
(let's assume that we create 500 objects, oid 1 -> oid 501, oid 2 -> oid 502)
But the test should use objects within pre-defined range. For example,
If the number of object is 500, only 1~500 oid are allowed for test operations.
In the failure cases, test operation tried to use wrong oids (which means
higher than 500). This is because the bug in the setup phase.
If max_inflights > 1, set-redirect can be finished after setup is completed.
(so wrong oid is included in oid_in_use).
We need to completely remove redirect objects in oid_in_use before start the test.
Boris Ranto [Fri, 26 May 2017 07:52:25 +0000 (09:52 +0200)]
rpm: Move ceph-disk to ceph-base
The SELinux package now requires the ceph-disk binary but that one was
part of the ceph-osd package. The ceph-disk python library is already
packaged in ceph-base so moving ceph-disk to ceph-base seems like a
reasonable next step.
Gui Hecheng [Sat, 27 May 2017 02:03:59 +0000 (10:03 +0800)]
rgw_file: add lock protection for readdir against gc
The state.mtx protects state.events accessed both from readdir and gc. Fixes: http://tracker.ceph.com/issues/20121 Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
Loic Dachary [Fri, 26 May 2017 13:38:24 +0000 (16:38 +0300)]
crush: update choose_args when items are added/removed
When items are added:
- the value in the weight set is set to the target weight. It is assumed
that weight set are updated on a regular basis and will eventually be
set to a value that prevents excessive over/under filling.
- the value in the id list is set to the item id.
When items are removed, their weight / ids in all choose_args are
removed.
Boris Ranto [Thu, 25 May 2017 12:36:13 +0000 (14:36 +0200)]
ceph-disk: Fix the file ownership, skip missing
This commit fixes the file ownership for the /usr/bin/ and /etc/ceph
files and skips missing files as some of the files that we do specify
now can be missing from the system (not installed, e.f. radosgw).
Fixes: http://tracker.ceph.com/issues/20077 Signed-off-by: Boris Ranto <branto@redhat.com>
Jos Collin [Tue, 30 May 2017 05:19:15 +0000 (10:49 +0530)]
test/msgr: silence warnings from -Wsign-compare
The following warning appears during make:
ceph/src/test/msgr/test_msgr.cc: In member function ‘virtual void MessengerTest_MarkdownTest_Test::TestBody()’:
ceph/src/test/msgr/test_msgr.cc:1474:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
CHECK_AND_WAIT_TRUE(srv_dispatcher.count > last + 1);
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
ceph/src/test/msgr/test_msgr.cc:54:9: note: in definition of macro ‘CHECK_AND_WAIT_TRUE’
if (expr) \
^~~~
ceph/src/test/msgr/test_msgr.cc:1475:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (srv_dispatcher.count == last) {
~~~~~~~~~~~~~~~~~~~~~^~~~~~~
Jos Collin [Tue, 30 May 2017 03:05:40 +0000 (08:35 +0530)]
test: test_denc.cc: silence warning from -Wsign-compare
The following warning appears during make:
ceph/src/test/test_denc.cc:669:5: required from here
ceph/src/googletest/googletest/include/gtest/gtest.h:1530:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
ceph/src/googletest/googletest/include/gtest/gtest.h:1510:7:
if (val1 op val2) {\
Sage Weil [Tue, 30 May 2017 01:55:33 +0000 (21:55 -0400)]
os/bluestore: deep decode onode value
In particular, we want the attrs (map<string,bufferptr>) to be a deep
decode so that we do not pin this buffer, and so that any changed attr
will free the previous memory.
Sage Weil [Fri, 26 May 2017 22:18:06 +0000 (18:18 -0400)]
os/bluestore: wait for kv thread to start before stopping it
Otherwise we can assert out when we try to join a thread that
hasn't started.
- move everything into _kv_start() and _kv_stop()
- separate stop bools for each thread
- wait until thread starts before signalling stop (and potentially calling
join()).
Sage Weil [Fri, 26 May 2017 20:24:57 +0000 (16:24 -0400)]
os/bluestore: fix fsck deferred_replay
_deferred_replay needs the kv_sync_thread to complete IOs; start them
just for that, but then shut them down again. (We might revisit that
later if/when fsck does any sort of repair.)
Sage Weil [Fri, 12 May 2017 15:42:52 +0000 (11:42 -0400)]
osd: replace require_*_osds flags with require_osd_release field
- OSDMap encode and decode translate between the flags and int
representations.
- OSDMap::Incremental only does decode; we do not expect to ever encode
an incremental osdmap for an old osd that sets any of these flags.
- the 'osd set' command still lets you set the jewel and kraken flags,
but not luminous.
- OSDMap::apply_incremental handles the conversion of legacy require flags
to the new field if the jewel or kraken flags have to be set before
starting the osd upgrade.
- clear out the legacy flags when we make the luminous transition only;
until then we keep using the old flag in the encoded and decoded version
(although the require_osd_release field will be accurate in memory in all
cases).
- This target got reintroduced by accident after the creation
of ceph-common in commit:
https://github.com/ceph/ceph/commit/046b2bde6d93992c36d4943c4f7859993f034ca
Detection was trigger by refering to libresolv, and results in a
linking error.
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
Nathan Cutler [Tue, 23 May 2017 07:44:45 +0000 (09:44 +0200)]
cmake: build boost::context and coroutine only with rgw Beast frontend
boost::context is currently (1.63) unsupported for s390x and anyway
it makes sense to conditionalize Boost components so they are only
built with the Ceph components that need them (like is already being
done for mgr).