alfonsomthd [Tue, 22 Jan 2019 12:26:38 +0000 (13:26 +0100)]
mgr/dashboard: added command to tox.ini
* Added 'run' command to run arbitrary commands so
you don't have to run the whole test/lint suite.
Use case examples:
- Run only 1 test:
tox -e py3-run pytest tests/test_rgw_client.py::RgwClientTest::test_ssl_verify
- Run pycodestyle for only 1 file:
tox -e py3-run pycodestyle tests/test_rgw_client.py
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
Kefu Chai [Sat, 19 Jan 2019 16:01:55 +0000 (00:01 +0800)]
tools/ceph_kvstore_tool: extract StoreTool into kvstore_tool.cc
to workaround n bug in GCC 7.3, which leads to ICE like
build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos7/DIST/centos7/MACHINE_SIZE/huge/release/14.0.1-2751-gb268822/rpm/el7/BUILD/ceph-14.0.1-2751-gb268822/src/tools/ceph_kvstore_tool.cc:625:1:
internal compiler error: Segmentation fault
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Sage Weil [Fri, 18 Jan 2019 15:38:59 +0000 (09:38 -0600)]
Merge PR #25132 into master
* refs/pull/25132/head:
os/bluestore: implement kv update on bluefs extents info change.
os/bluestore: use original algorithm to calculate BlueFS gift size for explicit allocation.
os/bluestore: get rid of bluefs space gifting performed in background
os/bluestore: do KV/FM/allocator opening in two stages.
os/bluestore: detach FreelistManager from DB instance.
test/osd/store_test: add test case for explicit bluefs expanding.
os/bluestore: implement explicit bluefs space allocation at slow device
os/bluestore: unify allocator dump on bluefs space failures
os/bluestore: stop keeping bluefs_extents at KV
Kefu Chai [Fri, 11 Jan 2019 10:47:39 +0000 (18:47 +0800)]
crimson/osd: enable crimson-osd to boot
* add state.h to encapsulate the state represeting different stages
related to booting an OSD. the boot process of an OSD can be blocked
by
- waiting for PG consuming updated osdmaps
- waiting for osdmaps marking osd.{whoami} up
- waiting for new osdmaps to bring this osd up to speed.
- waiting for current OSD to be healthy
we could chain these "waits" in a more seastarized way, and let
OSD::start() wait on the future returned by this chain. but that'd
requires adding some seastar::shard_future<> as member variables of
`OSD` class, which is a little bit more convoluted than the state
machine approach used in this change. we could switch over to the
`future<>` chain approach, if we found that these futures could have
more consumers than merely `OSD::start()`.
* all osdmaps are now stored in an `std::map` in `OSD`, we can
improve it by
- caching it using an LRU cache
- trimming the stale ones
- persisting the evicted maps into the meta collection in ObjectStore
* superblock is not persited to store, neither is it read from the
store.
Kefu Chai [Thu, 10 Jan 2019 13:15:18 +0000 (21:15 +0800)]
crimson: set src for message
monitor will panic at seeing a MOSDBoot message which is not from an
OSD. see OSDMonitor::preprocess_boot()
```
ceph_assert(m->get_orig_source_inst().name.is_osd());
```
/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.
Sage Weil [Fri, 18 Jan 2019 03:02:59 +0000 (21:02 -0600)]
Merge PR #25900 into master
* refs/pull/25900/head:
qa/tasks/ceph.py: bracket addrvecs in mon_host etc
vstart.sh: bracket addrvec on mon_host for msgr2-only mode
unittest_addrs: entity_addr_t: strengthen tests slightly
common/ceph_argparse: make parse_ip_port_vec handle list of addrs or addrvecs
common/ceph_argparse: parse_ip_port_vec returns addrvecs, not addrds
msg/msg_types: entity_addrvec_t: require brackets for size >1
msg/msg_types: entity_addrvec_t: allow brackets when parsing addrvec to match output
msg/msg_types: entity_addrvec_t: allow only ',' as an addrvec separator
msg/msg_types: entity_addr_t: we should not parse an addrvec
msg/msg_types: entity_addr_t: fix empty string parse cases
msg/msg_types: entity_addr_t: is_ipv6() and is_ipv4()
Patrick Donnelly [Thu, 17 Jan 2019 16:41:42 +0000 (08:41 -0800)]
mon/MDSMonitor: skip offline ERR for down fs
The idea here is that a file system marked down is considered intentionally
archived by the sysadmin. Consider the future use-case where there are dozens
or hundreds of file systems in use by dynamic applications that come and go. A
file system may only be brought up when the corresponding application is
online.
Fixes: http://tracker.ceph.com/issues/20611 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Noah Watkins [Thu, 17 Jan 2019 19:16:44 +0000 (11:16 -0800)]
cli: dump osd-fsid as part of osd find <id>
Dumps the osd-fsid uuid as part of the `osd find <id>` command.
Currently this uuid is only available as part of `osd dump` but
ceph-ansible has a use case to interrogate a single osd without needing
the entire osdmap dump.
Sage Weil [Thu, 17 Jan 2019 17:04:30 +0000 (11:04 -0600)]
Merge PR #25849 into master
* refs/pull/25849/head:
qa/suites/rados/upgrade: one mon per node, and enable-msgr2 at end
qa/rados/thrash-old-clients: avoid msgr2
mon: make bootstrap rank check more robust
mon: clean up probe debug output a bit
msg/async: use v1 for v1 <-> [v2,v1] peers
msg/async/AsyncMessenger: drop single-use _send_to
mon/HealthMonitor: raise MON_MSGR2_NOT_ENABLED if mons not bound to msgr2
doc/rados/operations/health-checks: document MON_* health warnings
mon/MonMapMonitor: add 'mon enable-msgr2' command
mon: respawn if rank addr changes
mon/MonMap: calc_addr_mons() after setting rank addrvec