Sage Weil [Wed, 13 Mar 2019 17:46:50 +0000 (12:46 -0500)]
qa/standalone/erasure-code/test-erasure-code: adjust test to avoid m=0
_DD is k=2 m=0, which we don't allow. Switch it to cDD.
I confess I don't fully understand why this was _DD to begin with, but
I'm pretty sure mapping is there to control the order of results so that
it can be mapped to the CRUSH rule output sanely, and the coding portion
is not relevant to the test.
Andrew Schoen [Fri, 8 Mar 2019 15:53:08 +0000 (09:53 -0600)]
ceph-volume: make systemctl.get_running_osds resilient to garbage output
Makes systemd.systemctl.get_running_osds more resilient to output
that doesn't match what we're expecting to parse. This also handles
the case of a nonzero exit status by retuning an empty list.
Andrew Schoen [Thu, 7 Mar 2019 17:57:03 +0000 (11:57 -0600)]
ceph-volume: use `simple scan` and `simple activate --all` in tests
In a couple of the functional tests for simple we should run `simple
scan` without any arguments and `simple activate --all` to increase
the test coverage. We want to test pointing at a diretory and scanning
all running OSDs.
Clang 8 complains about missing dtor, and this circumvents this problem.
```
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:136:48:
error: temporary of type 'boost::static_visitor<bool>' has protected
destructor
return boost::apply_visitor(IsWriteOpVisitor{}, m_request);
^
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:152:28:
note: in instantiation of member function
'librbd::io::ImageDispatchSpec<librbd::ImageCtx>::is_write_op' requested
here
template class librbd::io::ImageDispatchSpec<librbd::ImageCtx>;
^
/usr/local/include/boost/variant/static_visitor.hpp:53:5: note: declared
protected here
~static_visitor() = default;
^
1 error generated.
gmake[2]: *** [src/librbd/CMakeFiles/rbd_internal.dir/build.make:895:
src/librbd/CMakeFiles/rbd_internal.dir/io/ImageDispatchSpec.cc.o] Error 1
```
xie xingguo [Fri, 8 Mar 2019 07:47:56 +0000 (15:47 +0800)]
mgr/pg_autoscaler: drop undefined variable 'cr_name'
```
a/pg_autoscaler/module.py:359: error: Name 'cr_name' is not defined
```
Actually _get_pool_status should have prevented any pool
with a zero-ed capacity from going this far, so it is safe
to simply drop the obviously redundant check here.
Sage Weil [Fri, 8 Mar 2019 04:12:52 +0000 (22:12 -0600)]
Merge PR #26794 into master
* refs/pull/26794/head:
mon/MgrMonitor: only try to update always_on_modules if >= NAUTILUS
qa/standalone/mon/msgr-v2-transition: add some tests for enabling msgr v2
mon/MonmapMonitor: add 'ceph mon set-addrs <name> <addrvec>' command
Revert "mon/MonClient: disable ms_bind_msgr2 if NAUTILUS feature not set"
mon/OSDMonitor: use legacy_equals to compare osd addrs
msg/msg_types: make legacy_equals() symmetrical
mon/MDSMonitor: stop using get_orig_source_inst()
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Neha Ojha <nojha@redhat.com>
That behavior complicated the process of moving to v1 -> v2+v1 (extra
daemon restart, for example). Also, it wasn't sufficient: there are lots
of other reasons besides the mon version that could lead to a mismatch
between what we bind to locally and what is published in the cluster
maps. Better to embrace that reality and address those other issues.
Sage Weil [Wed, 6 Mar 2019 17:22:18 +0000 (11:22 -0600)]
mon/OSDMonitor: use legacy_equals to compare osd addrs
The OSDs may bind to v2+v1 due to ms_bind_msgr2, but we may only use the
v1 address in the OSDMap due to
- the osd->mon connection being v1 (mon isn't using v2 yet)
- the osd require_osd_release < nautilus
- ???
Conversely, the OSD may end up with a v2+v1 address in the osdmap, but
may connect to the current monitor via v1 only, due to the mon only being
bound to a v1 address.
If/when this happens, make sure we are doing a loose comparison of the
osdmap addrs vs the osd's addr they are connecting from.
Fixes: http://tracker.ceph.com/issues/38598 Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 6 Mar 2019 17:05:07 +0000 (11:05 -0600)]
msg/msg_types: make legacy_equals() symmetrical
The prior version would return true for
[v2,v1] vs [v2,v1]
[v2,v1] vs [v1]
but not
[v1] vs [v2,v1]
Now that final case is also true, which means a.legacy_equals(b) ==
b.legacy_equals(a) for any combination. This is what you would expect
for an equality operator... even a fuzzy one.
Ilya Dryomov [Wed, 6 Mar 2019 14:43:12 +0000 (15:43 +0100)]
librbd: don't do create+truncate for discards with copyup
With copyup, create is unnecessary because the object will be created
as a result of the copyup. create's place will be taken by assert_exists
from write_object().
Ilya Dryomov [Wed, 6 Mar 2019 14:43:12 +0000 (15:43 +0100)]
test/librbd: observe the object map interaction in DiscardRemoveTruncate
Undo the fixup made in merge commit a7351ce449bb ("Merge pull request
#20809 from idryomov/wip-librbd-discard-create-truncate"). We do want
to observe the object map interaction here -- specific changes towards
that were made in commits 513baf92ef01 ("test/librbd: clone with parent
features in DiscardRemoveTruncate") and 9d6ee9a64986 ("test/librbd:
expect_object_may_exist(..., false) in DiscardRemoveTruncate").
Sage Weil [Thu, 7 Mar 2019 12:30:29 +0000 (06:30 -0600)]
Merge PR #26725 into master
* refs/pull/26725/head:
doc/releases/nautilus: ask users to opt in to telemetry
doc/mgr/telemtry: update docs
mgr/telemetry: drop config-set and config-show; add just show
mgr/telemetry: make 'telemetry show' readable by a human
mgr/telemetry: add 'telemetry on' and 'telemetry off' commands
mgr/telemetry: off by default
Reviewed-by: Wido den Hollander <wido@42on.com> Reviewed-by: Dan Mick <dmick@redhat.com>
Sage Weil [Wed, 6 Mar 2019 23:40:48 +0000 (17:40 -0600)]
msg/async/ProtocolV1: fix locking around authorizer_buf
Fix two problems:
- we are accessing authorizer_buf without the connection lock, and
under the lock we are modifying it (in connect()).
- if we receive two connect_msg's with a different length, we won't
have a buffer that's large enough.
Fixes: http://tracker.ceph.com/issues/38524 Signed-off-by: Sage Weil <sage@redhat.com>
build: LLVM ld does not like the versioning scheme
There is a few essentail differences between the way versioning
and a version-map is interpreted for binutils ld and LLVM ld.
The easy way out for the time being is to use the one that works.
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
Jeff Layton [Mon, 25 Feb 2019 14:21:08 +0000 (09:21 -0500)]
mgr/orchestrator: allow scaling the NFS server count up and down
Add a new 'ceph orchestrator nfs update' command that will take the
NFS clustername and a new count as arguments. That will get translated
to a StatelessServiceSpec and passed to update_stateless_service.
Also, add the necessary stubs to the test_orchestrator and the CLI
QA test.
Jeff Layton [Mon, 25 Feb 2019 14:27:02 +0000 (09:27 -0500)]
mgr/rook: allow scaling nfs count
Allow rook to handle scaling the NFS server count up and down in an NFS
cluster. We just manifest these changes as change to the
spec.server.active field in the CRD.
Jeff Layton [Tue, 26 Feb 2019 19:53:45 +0000 (14:53 -0500)]
mgr/orchestrator: just keep a single count value in StatelessServiceSpec
We currently have a min_size/max_size values in here, but we don't have
any orchestrators that can take advantage of two values. Let's just keep
a simple count for now, until we do.