Kefu Chai [Tue, 6 Oct 2020 11:09:18 +0000 (19:09 +0800)]
crimson/os: mark class with "final" dtor "final"
to silence warning like
scheduler.cc:145:30: warning: class with destructor marked 'final' cannot be inherited from [-Wfinal-dtor-non-final-class]
~ClassedOpQueueScheduler() final {};
^
/home/jenkins-build/build/workspace/ceph-perf-crimson/ceph-pr/src/crimson/osd/scheduler/scheduler.cc:52:7: note: mark 'ClassedOpQueueScheduler<T>' as 'final' to silence this warning
class ClassedOpQueueScheduler : public Scheduler {
^
Kefu Chai [Tue, 6 Oct 2020 11:03:38 +0000 (19:03 +0800)]
crimson/os: mark dtor of interface class "virtual"
we use a smart_ptr in Seastore to manage the life cycle of
`TransactionManager` which is in turn a subclass
`ExtentCallbackInterface`, so should declare the dtor of latter as
virtual.
Or Ozeri [Wed, 16 Sep 2020 08:42:45 +0000 (11:42 +0300)]
librbd: support assembling sparse results of multiple object extents
Currently, Striper supports assembling results representing a single object extent.
Recently, the object dispatch API was extended allowing to read multiple object extents per rados operation.
This commit enables the Striper to correctly un-sparsify the results of the new read extents API.
Kefu Chai [Sat, 3 Oct 2020 11:05:15 +0000 (19:05 +0800)]
crimson/osd: mark Operation::dump_detail() private
Operation::dump_detail() is called by Operation::dump(), the latter is a
member of Blocker. so there is no need to mark dump_detail() protected
or public to grant the access Operation::dump() the access to this method.
Kefu Chai [Sat, 3 Oct 2020 10:53:23 +0000 (18:53 +0800)]
crimson/osd: mark dump_detail() private
Blocker::dump_detail() is called by Blocker::dump(), the latter is a
member of Blocker. so there is no need to mark dump_detail() protected
or public to grant the access Blocker::dump() the access to this method.
Kefu Chai [Fri, 2 Oct 2020 16:41:06 +0000 (00:41 +0800)]
admin: be compatible with pip shipped by distro older than v20.2
pip v20.2 introduced a new option named --use-feature, which is not
available with <20.2. so we need to check for it before using it. see
also
https://pip.pypa.io/en/stable/user_guide/#changes-to-the-pip-dependency-resolver-in-20-2-2020
Sebastian Krah [Fri, 2 Oct 2020 09:07:40 +0000 (11:07 +0200)]
mgr/dashboard: Show warning when replicated size is 1
Issues a warning when creating a replicated pool and the replicated size
is 1. It won't stop the user from creating the pool, but will give the
user a hint that no replication will be created.
Fixes: https://tracker.ceph.com/issues/42404 Signed-off-by: Sebastian Krah <skrah@suse.com>
Joshua Schmid [Fri, 2 Oct 2020 09:37:58 +0000 (11:37 +0200)]
python-common: do not skip unavailable devices
Fixes: https://tracker.ceph.com/issues/47726
We should assemble the device set based on the drivegroups in
mgr/cephadm (regardless of their availability) and pass it to c-v.
This patch is the missing piece to actually do this.
Neha Ojha [Thu, 1 Oct 2020 21:57:57 +0000 (21:57 +0000)]
qa/suites/rados: move thrash-old-clients under cephadm
Since it uses cephadm, at the moment it makes sense to run it as a part of
rados/cephadm. This gives better test coverage for developers and has exposed
bugs such as https://tracker.ceph.com/issues/45421 and
https://tracker.ceph.com/issues/47709. We can always restructure this later.
Volker Theile [Thu, 1 Oct 2020 13:14:08 +0000 (15:14 +0200)]
mgr/dashboard: Fix tox warning about PYTHONPATH
Get rid of the warning "WARNING: Discarding $PYTHONPATH from environment, to override specify PYTHONPATH in 'passenv' in your configuration." by declaring "passenv=PYTHONPATH" according to the tox documentation.
> PYTHONPATH will be passed down if explicitly defined. If PYTHONPATH exists in the host environment but is not declared in passenv a warning will be emitted.
See https://tox.readthedocs.io/en/latest/config.html?highlight=passenv#conf-passenv.
librbd/cache: Refactor common code for RWL and SSD
... from AbstractWriteLog class
Signed-off-by: Lisa Li <xiaoyan.li@intel.com> Signed-off-by: Mahati Chamarthy <mahati.chamarthy@intel.com> Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
Sebastian Krah [Fri, 20 Mar 2020 09:27:08 +0000 (10:27 +0100)]
mgr/dashboard: improve logs
Changes the text that is being displayed when no log entry was found.
Also changes the log level to debug.
User can no longer select a date in the future to filter log entries.
Fixes: https://tracker.ceph.com/issues/42963 Signed-off-by: Sebastian Krah <skrah@suse.com>
librbd: mark quiesce notification complete after quiesce complete
Previoulsy it was marked complete only after unqiesce was
complete, which did not allow us to use the error code stored in
m_async_complete for a quiesce dup coming between the quiesce was
complete and unqiesce was complete.
mon: set session_timeout when adding to session_map
With msgr2, the session is added in Monitor::ms_handle_accept()
which is queued by ProtocolV2 at the end of handling CLIENT_IDENT
frame, before responding with SERVER_IDENT frame. session_timeout
is 0 and gets set only in Monitor::ms_dispatch(), so if the session
trimming code in Monitor::tick() gets to the session before the peer
receives our SERVER_IDENT, handles it, sends the first message and
we receive it, the session is wrongly closed.
This doesn't happen with msgr1, because there the session is added in
Monitor::ms_dispatch(), upon receive of the first message (MSG_AUTH).
Jan Fajerski [Fri, 11 Sep 2020 14:35:00 +0000 (16:35 +0200)]
ceph-volume inventory: add option to filter unwanted devices
Some device we never want to pass to the batch subcommand. For now this
includes devices that have a partition or are mounted on the machine.
One goal is to filter the root device, so it is not included on a batch
command and thus would contribute to its implicit sizing calculation.
Stephan Müller [Thu, 10 Sep 2020 12:28:47 +0000 (14:28 +0200)]
mgr/dashboard: Speed improvements of pool details
Now all variables that are shown in a listing that trigger a
more complex render cycle will only be updated if pool properties have
changed and not only the time series data, which isn't shown anymore,
as it can be seen graphically enhanced in the pool listing.
The pool detail component now uses the `onPush` change detection
strategy, to only call `ngOnChanges` if one of the input variables
have changed.
The function that only updates variables if they have changed is
now available through a helper class in order to provide this
useful functionality through out the dashboard.
Fixes: https://tracker.ceph.com/issues/46375 Signed-off-by: Stephan Müller <smueller@suse.com>
Anthony D'Atri [Tue, 29 Sep 2020 06:42:10 +0000 (23:42 -0700)]
doc/rados: erasure-code-lrc corrections
doc/rados: erasure-code-lrc corrections
- Clarified / corrected jerasure recovery characterization cf. https://library.eecs.utk.edu/storage/125phpw0xFqAut-cs-07-603.pdf
- Capitalization
- Word choice: OSDs are discrete / cardinal, so "fewer" instead of "less"
- Reworked a few phrases to be less stilted
Signed-off-by: Anthony D'Atri <anthony.datri@gmail.com>