Patrick Donnelly [Mon, 11 Jan 2021 18:12:17 +0000 (10:12 -0800)]
Merge PR #38640 into master
* refs/pull/38640/head:
qa: add test for reserved keyword feature
qa: use no client for required client feature tests
mds: do not allow setting a reserved feature by name
mds: return sv for efficiency
Reviewed-by: Jos Collin <jcollin@redhat.com> Reviewed-by: Rishabh Dave <ridave@redhat.com>
Patrick Donnelly [Mon, 11 Jan 2021 16:38:52 +0000 (08:38 -0800)]
Merge PR #38108 into master
* refs/pull/38108/head:
doc, man: man page for `cephfs-top` utility
doc: document `cephfs-top` utility
test: selftest for `cephfs-top` utility
spec, deb: package cephfs-top utility
cephfs-top: top(1) like utility for Ceph Filesystem
mgr/stats: include kernel version (for kclients) in `perf stats` command output
mgr/stats: include version with `perf stats` output
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Sebastian Wagner [Mon, 11 Jan 2021 14:04:55 +0000 (15:04 +0100)]
Merge pull request #38141 from Daniel-Pivonka/nodeexporterpullauth
cephadm: fix podman failure to pull authenticated registry image from systemd unit
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com> Reviewed-by: Michael Fritch <mfritch@suse.com> Reviewed-by: Paul Cuzner <pcuzner@redhat.com> Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Sebastian Wagner [Mon, 11 Jan 2021 11:02:25 +0000 (12:02 +0100)]
Merge pull request #38615 from adk3798/haproxy-stuff
mgr/cephadm: HA for RGW endpoints
Reviewed-by: Daniel-Pivonka <dpivonka@redhat.com> Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com> Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
common/options.h: use uint64_t for TYPE_SIZE options regardless of CPU architecture
On 32 bit systems TYPE_SIZE should remain as 64 bit value as large number of default options of TYPE_SIZE easily overflow 32 bit word. Also cluster wide options from 64 bit systems should fit unmodified into options structures on 32 bit systems.
Signed-off-by: Vladimir Bashkirtsev <vladimir@bashkirtsev.com>
* refs/pull/38698/head:
client: fix the cache size check
client: add more detail info for the _put_inode debug log
client: skip putting inodes if map is empty
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Greg Farnum [Fri, 8 Jan 2021 22:17:07 +0000 (22:17 +0000)]
osd: osdmap: do not assert target_v when encoding in stretch mode
Again, this was an overly-strict safety check. It passed testing against
(even old) userspace clients, but the kernel clients don't have all the
same feature bits and so when encoding for them, we see lower target_v values
and assert out erroneously.
As before, monitors and OSDs that actually need to interpret this data
are gated on cluster entry, so we don't need this safety check here.
Daniel-Pivonka [Mon, 26 Oct 2020 18:34:39 +0000 (14:34 -0400)]
cephadm: HA for RGW endpoints
Cephadm deploying keepalived and HAproxy for providing High availability for RGW endpoints
Fixes: https://tracker.ceph.com/issues/45116 Signed-off-by: Daniel-Pivonka <dpivonka@redhat.com> Signed-off-by: Adam King <adking@redhat.com> Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
* refs/pull/38664/head:
qa: bump scrub timeout
qa: move cephfs_ec_profile under cephfs
qa: do not use ec pools for default data pool
qa: skip check-counters for light workloads
qa: remove empty multimds suite
qa: merge multimds:verify with fs:verify
qa: merge multimds:thrash to fs:thrash
qa: remove dead multimds:basic
qa: move functional multimds tests to fs:functional
qa: migrate multimds workloads to fs:workloads
qa: only run valgrind on cephfs daemons
qa: stop testing filestore on cephfs suites
qa: load data pools before deleting fs
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Tested-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/38693/head:
qa: execute scrubs only on rank 0
client: print debug information about resolved MDS
qa: let Client::resolve_mds lookup the rank
Kefu Chai [Fri, 8 Jan 2021 07:55:49 +0000 (15:55 +0800)]
common/Throttle: return new count in put() right away
before this change, the is a racing after updating `count`, where
`count` could be updated again by another thread using this Throttle
instance. but the caller expects the value before the second mutation.
actually, the only caller which care about the return value is the
unittests in test/common/Throttle.cc. and without this change, the
ThrottleTest.get test fails randomly. almost 1 out of 5 runs fails.
after this change, the test passes after running for 256 times without
failures.
Varsha Rao [Tue, 8 Dec 2020 18:16:27 +0000 (23:46 +0530)]
mgr/volumes/nfs: remove 'ganesha-' prefix from cluster id
Orchestrator defines service name as "<service_type>.<service_id>". The ganesha
common config object name in orchestrator is "conf-<service_name>". Volume's
nfs plugin deploys nfs-ganesha clusters with 'ganesha' prefixed to cluster id
and common config object. It can cause unecessary issues in rook and cephadm.
So let's remove the prefix.
Kefu Chai [Wed, 6 Jan 2021 08:18:17 +0000 (16:18 +0800)]
googletest: pick up change to silence error=maybe-uninitialized warning
to include the fix of https://github.com/google/googletest/pull/3024
otherwise GCC-11 fails to compile the tests with following warning:
In file included from ../src/googletest/googletest/src/gtest-all.cc:42:
../src/googletest/googletest/src/gtest-death-test.cc: In function ‘bool testing::internal::StackGrowsDown()’:
../src/googletest/googletest/src/gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
1301 | StackLowerThanAddress(&dummy, &result);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../src/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type ‘const void*’ to ‘void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here
1290 | static void StackLowerThanAddress(const void* ptr, bool* result) {
| ^~~~~~~~~~~~~~~~~~~~~
../src/googletest/googletest/src/gtest-death-test.cc:1299:7: note: ‘dummy’ declared here
1299 | int dummy;
| ^~~~~
cc1plus: all warnings being treated as errors
Kefu Chai [Fri, 8 Jan 2021 05:42:18 +0000 (13:42 +0800)]
test/test_rbd_replay: move operator<<(..rbd_loc& name) to rbd_replay
so gtest can print out rbd_loc when printing out diagnostic information
when test fails. after moving operator<<(ostream&, const rbd_loc&) to
the `rbd_replay` namespace, ADL is able to find it. for more details on
the lookup rules, see https://en.cppreference.com/w/cpp/language/adl
Kefu Chai [Thu, 7 Jan 2021 03:56:25 +0000 (11:56 +0800)]
common/ceph_time: add operator<< for signedspan
* templatize operator<<(ostream&, duration<>), so it works for more
duration<> classes with minimal efforts -- we just need to explicitly
instantiate these template operators
* explicitly instantiate operator<< for timespan, signedspan, seconds
and milliseconds. they are most likely to be used in Ceph. we can add
more of them when necessary.
Kefu Chai [Thu, 7 Jan 2021 07:17:45 +0000 (15:17 +0800)]
common/ceph_time: move operator<<(ostream&, timespan&) into std namespace
otherwise compiler is not able to find it as the "timespan" here is
actually a class defined in std namespace, even it has an alias defined
in ceph namespace like:
Kefu Chai [Thu, 7 Jan 2021 07:14:57 +0000 (15:14 +0800)]
include/CompatSet: do not "using ceph::operator<<"
it's simply not correct. because "operator<<(std::ostream&out, const
std::pair<A,B>&)" and friends are defined in "namespace std", and what
this source file intents to use are exactly these operator<<'s, there is
no need to bring any "ceph::operator<<" into this scope.
haoyixing [Fri, 8 Jan 2021 03:29:01 +0000 (11:29 +0800)]
pybind/mgr: change format_bytes unit color from black to yellow
Currently format_bytes output (such as ceph fs status) makes unit black, which is
hard to distinguish on black terminals, so change them as same as the data itself.
Kefu Chai [Thu, 7 Jan 2021 15:43:26 +0000 (23:43 +0800)]
doc: build mon_command_api.rst using a homebrew extension
so we can build the command doc using ReadTheDoc infra, without adding
the generated rst file to the source repo.
before this change, all the commands are ordered alphabetically. after
this change, command docs are generated by two directives, and are
ordered separately. we could restructure the directives and merge them.
but let's leave it for a future change if this is important.
for more details on writing sphinx directives, see
https://www.sphinx-doc.org/en/master/extdev/markupapi.html and
https://docutils.sourceforge.io/docs/howto/rst-directives.html