/home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/seastar/fmt/include/fmt/format.h:2120:14:
error: comparison of integer expressions of different signedness: 'const
wchar_t' and 'char' [-Werror=sign-compare]
if (*out == value)
~~~~~^~~~~~~~
cc1plus: all warnings being treated as errors
where libfmt compares a wchar_t with a literal '}', which is char.
because the former is unsigned, and the latter is of a signed type,
GCC is annoyed. but since both of them are ASCII, and when performing
comparison, the signed one is converted to unsigned, then result of
comparison is correct per-se. hence, it's safe to silence this very
warning.
and warning like:
/home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/seastar/src/core/future-util.cc:61:5:
required from 'seastar::future<> seastar::sleep_abortable(typename
Clock::duration, seastar::abort_source&) [with Clock =
std::chrono::_V2::steady_clock; typename Clock::duration =
std::chrono::duration<long int, std::ratio<1, 1000000000> >]'
/home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/seastar/src/core/future-util.cc:68:105:
required from here
/home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/seastar/src/core/future-util.cc:48:28:
error: 'seastar::sleep_abortable(typename Clock::duration,
seastar::abort_source&)::sleeper::sleeper(typename Clock::duration,
seastar::abort_source&) [with Clock = std::chrono::_V2::steady_clock;
typename Clock::duration = std::chrono::duration<long int, std::ratio<1, 1000000000> >]::<lambda()>' declared with greater visibility than the
type of its field 'seastar::sleep_abortable(typename Clock::duration,
seastar::abort_source&)::sleeper::sleeper(typename Clock::duration,
seastar::abort_source&) [with Clock = std::chrono::_V2::steady_clock;
typename Clock::duration = std::chrono::duration<long int, std::ratio<1, 1000000000> >]::<lambda()>::<this capture>' [-Werror=attributes]
: tmr([this] { done.set_value(); }) {
^ Signed-off-by: Kefu Chai <kchai@redhat.com>
Kefu Chai [Fri, 21 Dec 2018 10:34:22 +0000 (18:34 +0800)]
test/crimson/monc: start/stop perf counter
in CephContext::CephContext(), we assume that
ceph::common::local_perf_coll() is ready when a CephContext is to be
contructed. so we need to prepare start it before creating CephContext.
Kefu Chai [Wed, 28 Nov 2018 13:00:33 +0000 (21:00 +0800)]
crimson/monc: set name using a setter
* set entity_name using a setter not pass it to constructor, because
the entity_name is retrieved in seastar's app.run() by ConfigProxy,
while it'd be simpler if we can instantiate mon::Client in main()
as a local variable, instead of managing it on heap using a smart
pointer. so we cannot pass the entity_name as a parameter of ctor.
* also cleanup the #include's, as they are included already in the
header.
Kefu Chai [Wed, 28 Nov 2018 12:55:44 +0000 (20:55 +0800)]
crimson: pass entity_name and cluster to ctor of ConfigProxy
as we always need to set entity_name and cluster before start using
ConfigProxy, and we do not read these settings from config file,
this makes these two setting special. so it'd be simpler to just
pass them as parameters of constructor.
and more importantly, we need to parse the command line arguments
using ceph_argparse_early_args() first, as it will consume the parsed
arguments, and leave the unparsed ones in the input parameter of `args`,
and then, we can pass the unparsed args to app.run().
it's not a perfect solution. as there are some options that both parsers
are interested, for instance, `-c` -- ceph take it as the conf file's
path, while seastar takes it as the number of cores to use. but let's
feed ceph's parser first. unless it's fine to drop the backward
compatibility of command line syntax of ceph-osd.
Sage Weil [Wed, 16 Jan 2019 19:12:35 +0000 (13:12 -0600)]
Merge PR #25934 into master
* refs/pull/25934/head:
msg/msg_type: entity_addr_t: fix legacy decode
msg/msg_types: make set_sockaddr() work with AF_UNSPEC (i.e., zeroed)
msg/msg_types: make set_sockaddr() a bit more robust
msg/async: fix IP inference
Sage Weil [Wed, 16 Jan 2019 13:13:14 +0000 (07:13 -0600)]
msg/msg_type: entity_addr_t: fix legacy decode
If we decode a zeroed sockaddr, we should end up with a TYPE_NONE
entity_addr_t, not v1::/0.
This was obscured by unit test TestAddrvecEncodeAddrDecode3, which
took an addrvec with all v2 addrs, decoded to an addr variable that
previously had v1:1.2.3.4:/0, and asserted the result was not v1::/0.
The test passed before because the set_sockaddr() failed on AF_UNSPEC
and the addr kept v1:1.2.3.4, but with the previous commit it failed
because it equaled v1::/0. In reality, addr should get - (addr TYPE_NONE).
The TestEmptyAddrvecEncodeAddrDecode test case is similarly adjusted.
xie xingguo [Mon, 14 Jan 2019 06:39:18 +0000 (14:39 +0800)]
mgr/balancer: blame if upmap won't actually work
With automatic balancing on, and if mode is set to upmap,
balancer will fail silently if min_compat_client is lower than
luminous.
You can't figure out that unless you take a closer look at the
mgr log, which is super annoying..
xie xingguo [Tue, 15 Jan 2019 08:23:26 +0000 (16:23 +0800)]
crush: fix memory leak
If we remove the last item of bucket, there should still be
one final entry in the __weights__ field of __weight_set__.
Free the corresponding memory before we __null__ the pointer.
Kefu Chai [Mon, 14 Jan 2019 10:05:00 +0000 (18:05 +0800)]
common/pick_address: #include "ceph_context.h"
pick_address.cc reference cct->_conf, so it should include the
definition of of CephContext explicitly instead of relying on the fact
that some headers it includes include its definition.
Kefu Chai [Mon, 14 Jan 2019 10:08:03 +0000 (18:08 +0800)]
common/ip_addr: do not support numa preference if WITH_SEASTAR
in pick_address.cc, set_val_or_die() is called to set the "public_addr"
and/or "cluster_addr". but since the sharded ConfigProxy cannot
set_val_or_die() synchronously, we cannot do it this way.
we need to fix pick_addresses() so it works with seastar later. either
by making the involved function return future<>, or making the set_val()
call non-blocking or synchronous if we can go with 1:1 mapping
threading model.
but at this moment, let's just disable this feature in crimson-osd.
unittest_seastar_messenger is failed since updated the seastar repo.
std::system_error (error system:22, Invalid argument) will be raised
from `listener->accept()`, which will be re-raised and not be captured.
This fix is to print error logs for the unexpected exceptions in
`SocketMessenger::start()` and not raise them again.
Patrick Donnelly [Mon, 14 Jan 2019 23:40:30 +0000 (15:40 -0800)]
Merge PR #25879 into master
* refs/pull/25879/head:
client: define template to declare ref
client: use message smart ptr instead of raw ptr
client: make map lookup optimizations
client: do not clear message payload
client: clean up variable name
*: use std::string_view instead of char ptr
Patrick Donnelly [Mon, 14 Jan 2019 19:32:01 +0000 (11:32 -0800)]
Merge PR #25633 into master
* refs/pull/25633/head:
mgr/rook: allow service describe and service ls to display nfs services
mgr/rook: add support for adding NFS gateways
mgr/orchestrator_cli: add support for adding NFS gateways
mgr/orchestrator_cli: convert service add/rm commands to be type-specific
mgr/rook: add decorator for add_stateless_service
mgr/rook: add a context manager instead of open-coding exception handling
Reviewed-by: Ricardo Dias <rdias@suse.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Sebastian Wagner <swagner@suse.com>
Sage Weil [Sat, 12 Jan 2019 11:32:54 +0000 (05:32 -0600)]
qa/tasks/ceph: stop any split/merge activity before scrubbing
If there are leftover merges at the end of the run they can take a long
time to get through, blowing our timeout for (waiting for pgs to become
active and to stop splitting/merge) and scrubbing pgs. Stop all of that
at the end of the run so that we don't have to wait so long.
Jeff Layton [Thu, 15 Nov 2018 17:22:38 +0000 (12:22 -0500)]
mgr/orchestrator_cli: add support for adding NFS gateways
Add necessary commands to orchestrator_cli to allow it to deploy a
cluster of NFS servers. Note that we have to be able to specify the pool
and an optional namespace for the recovery backend objects.
Jeff Layton [Thu, 20 Dec 2018 11:56:01 +0000 (06:56 -0500)]
mgr/orchestrator_cli: convert service add/rm commands to be type-specific
When adding services, we often need different sets of arguments
depending on the service type. Convert the "service add" and "service
rm" commands into separate commands for each service type.
Sebastian Wagner [Mon, 14 Jan 2019 11:03:33 +0000 (12:03 +0100)]
Merge pull request #25492 from sebastian-philipp/orchestrator-common-metaclass
pybind/mgr: Unified bits of volumes and orchestrator
Reviewed-by: Jan Fajerski <jfajerski@suse.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Tim Serong <tserong@suse.com>