Lenz Grimmer [Wed, 7 Aug 2019 09:14:08 +0000 (11:14 +0200)]
Merge pull request #29451 from rhcs-dashboard/wip-41047-master
github: Add CODEOWNERs for designated code-owner reviews
Reviewed-by: Jan Fajerski <jfajerski@suse.com> Reviewed-by: Kefu Chai <kchai@redhat.com> Reviewed-by: Sage Weil <sage@redhat.com> Reviewed-by: Sebastian Wagner <swagner@suse.com> Reviewed-by: Stephan Müller <smueller@suse.com>
* use primitive types instead of `JLeaf(the_type)` as they are
equivalent in this context
* remove fields which are added only if certain channels are
activated.
* allow unknown fields, as we are including various stuff
in the report, for instance, osdmap, usage, crash info, etc.
Sage Weil [Tue, 6 Aug 2019 21:22:14 +0000 (16:22 -0500)]
Merge PR #29116 into master
* refs/pull/29116/head:
osd: move heartbeat connection cleanup to helper
osd: break con<->session cycle when removing heartbeat peers
osd: mark down heartbeat connections on shutdown
crimson/: move get_mnow() to ShardServices, pass to heartbeat
crimson/osd: stubs for get_mnow, get_hbstamps
crimson/osd/heartbeat: adapt to new MOSDPing fields
crimson/osdmap_service: add get_mnow(), get_up_epoch()
osd/PeeringState: take HeartbeatStamps refs for current interval
osd: track clock delta between peer OSDs
osd: add get_mnow() interface to OSDService, PG, PeeringState
osd: record startup_time
osd: some minor refactoring/cleanup in handle_osd_ping
Samuel Just [Tue, 23 Jul 2019 03:07:57 +0000 (20:07 -0700)]
crimson/: move get_mnow() to ShardServices, pass to heartbeat
get_mnow isn't clearly at home in OSDMapService, and the other methods
are needed from PeeringState, so let's consolidate on ShardServices
for now. We probably ought OSDMapService state out of OSD into its
own module at some point.
Sage Weil [Mon, 17 Jun 2019 18:55:56 +0000 (13:55 -0500)]
osd: track clock delta between peer OSDs
We need to keep track of the monotonic clock deltas between peer OSDs in
order to be able to exchange timestamps across messages. We need an
upper and lower bound on this delta, depending on the context where it is
used.
We can use the existing ping messages to get this by assuming that a ping
message is sent instantly to get a bound, and to share our delta in a
follow-up reply to share the other bound. The ping sender will get both
bounds with a single ping + ping_reply exchange. The ping receiver will
get the delta value from the next round's ping.
Include up_from in the ping messages to ensure we don't mix up different
instances of the same OSD.
Sage Weil [Mon, 5 Aug 2019 18:08:53 +0000 (13:08 -0500)]
Merge PR #29337 into master
* refs/pull/29337/head:
mon: enable telemetry module by default
mgr/telemetry: force re-opt-in if the report contents change
mgr/telemetry: less noise in the log
mgr/telemetry: wake up serve on config change
mgr/telemetry: track telemetry report revisions
Kefu Chai [Mon, 5 Aug 2019 15:37:52 +0000 (23:37 +0800)]
cmake: pass tox envs to run_tox.sh explicitly
* add two optional keyword parameters to `add_tox_test()`
* use the default `TOX_PATH` parameter instead passing it explicitly,
as it is always `${CMAKE_CURRENT_SOURCE_DIR}`
* drop the code to guess the tox envs in `run_tox.sh`, and always pass
them explicitly in CMake script using the `--tox-envs` argument.
Ernesto Puerta [Thu, 1 Aug 2019 15:04:37 +0000 (17:04 +0200)]
github: Add CODEOWNERs for component/team reviews
Adds [CODEOWNERS](https://help.github.com/en/articles/about-code-owners)
file and assigns ownership of /src/pybind/mgr/dashboard to
@ceph/dashboard alias. That will also automatically add @ceph/dashboard
team to all reviews modifying any file in the above location.
Besides, if "Require review from Code Owners" is marked in the Branch
Protection Rules of any branch, where this CODEOWNERS file is propagated
to, at least one review from a designated CODEOWNER will be mandatory.
If Ceph teams' visibility is changed to public, teams can also be
@mentioned (both from Ceph and other projects), so it's easier to reach
to component-team members.
Kefu Chai [Fri, 2 Aug 2019 05:26:36 +0000 (13:26 +0800)]
cmake: use script/run_tox.sh for running tox for dashboard
* adapt script/run_tox.sh to use different envs for dashboard's tox
test.
* use script/run_tox.sh for running dashboard's tox test
* remove pybind/mgr/dashboard/run-tox.sh
Kefu Chai [Sun, 4 Aug 2019 14:48:31 +0000 (22:48 +0800)]
test/journal: always close object
otherwise when we destruct `TestObjectRecorder::Handler::lock` or
`journal::JournalRecorder::m_object_locks`, it/they would be still
being waited by some condition variable.
Kefu Chai [Sun, 4 Aug 2019 03:41:26 +0000 (11:41 +0800)]
install-deps.sh: use chacra for cmake repo
two reasons:
- do not rely on kitware repo so we have better control of the
cmake3: the `debian` directory is tracked by
https://github.com/tchaikov/ceph-cmake
- chacra repo also offers aarch64 build of cmake3
Clang complains:
/home/jenkins/workspace/ceph-master/src/osdc/ObjectCacher.cc:1848:22: error: no viable constructor or deduction guide for deduction of template arguments of 'unique_lock'
std::unique_lock l{lock, std:adopt_lock};
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
`PG` print details info in the prefix of logging messages if the PG is
being locked by current thread. but `ceph::mutex` is an alias of
`std::mutex` in non-debug mode, so neither `mutex::is_locked_by_me()` nor
`mutex::is_locked()` is supported in non-debug mode. to continue supporting
this feature, `PG::locked_by` is added to memorize the thread id of the owner
of the lock.
* s/Formatter/ceph::Formatter/ in tools/rbd_mirror/ImageSyncThrottler,
as we cannot rely on `using ceph` or `using ceph::Formatter` in
some other included header files.
as we cannot create a `smart_pointer<ceph::mutex>` due to limitation of
`ceph::make_mutex()`, we need to refactor `TestObjectRecorder` to remove
its `TearDown()` method, as when `TearDown()` is called, all local
variables have been destroyed, including the `ceph::mutex` instances. so
we need to introduce a helper of `ObjectRecorderFlusher`, to flush the
objects before `mutex` instances are destroyed. to simplify the
interfaces, it flushes in its dtor. so its lifecycle should be shorter
than those of mutexes. that's why, mutexes are created before `flusher`.