Patrick Donnelly [Fri, 23 Oct 2020 00:17:37 +0000 (17:17 -0700)]
Merge PR #36204 into master
* refs/pull/36204/head:
client: add command_lock support
client: defer swapping the newmap to mdsmap
client: try to grab the client_lock when needed
client: clean up the client code
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Samuel Just [Thu, 22 Oct 2020 23:07:06 +0000 (16:07 -0700)]
test/crimson/seastore/test_btree_lba_manager: test mutate_mapping on more split/merge states
incref_mapping has a slightly different relationship with merge than
decref_mapping, update split/merge test to ensure that we call into
mutate_mapping at each step as the nodes fill, split, empty, and merge.
Patrick Donnelly [Thu, 22 Oct 2020 19:52:01 +0000 (12:52 -0700)]
Merge PR #36544 into master
* refs/pull/36544/head:
vstart_runner: omit result line only when testcases are run one by one
vstart_runner: don't quit running testsuite on a test failure
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
jinmyeonglee [Thu, 22 Oct 2020 08:25:51 +0000 (17:25 +0900)]
vstart.sh: fix fs set max_mds bug
Fix a bug where the name used when creating a volume and the name used when setting max_mds were different. Fixes: https://tracker.ceph.com/issues/47946 Signed-off-by: Jinmyeong Lee <jinmyeong.lee@linecorp.com>
Jos Collin [Thu, 15 Oct 2020 11:30:50 +0000 (17:00 +0530)]
mds: detect mds-mds messages not of type MMDSOp
* Detect mds-mds messages not of type MMDSOp.
* Return true from MetricAggregator::ms_dispatch2 only when the peer is an MDS and the metrics is handled.
Fixes: https://tracker.ceph.com/issues/46426 Signed-off-by: Jos Collin <jcollin@redhat.com>
Kefu Chai [Thu, 22 Oct 2020 04:40:37 +0000 (12:40 +0800)]
crimson/osd: add more privacy
* reorder the member variable and member function definitions so the
private members are listed at the end of class. as requested by
the CodingStyle
* mark some member variables and member functions private, as long as
they are not used by other classes or non-friend classes.
* document UrgentRecovery
* refactor BackgroundRecovery::get_scheduler_params() to dedup
the comments
Samuel Just [Mon, 19 Oct 2020 20:13:26 +0000 (13:13 -0700)]
crimson/os/seastore/.../lba_btree_node_impl: use node_[un]resolve_vals
Implement node_[un]resolve_vals to transform values to/from block relative
representations when copying out of/in to newly created blocks. This can
happen when splitting a node which has had entries added during the
same transaction, or itself was created during the transaction.
Samuel Just [Thu, 27 Aug 2020 07:14:30 +0000 (00:14 -0700)]
crimson/os/seastore: add space accounting to segment_cleaner and wire in
Adds support for space accounting to SegmentCleaner and wires into
Journal, Cache, and tests.
SegmentCleaner has two tracking implementations, SpaceTrackerSimple
and SpaceTrackerDetailed. SpaceTrackerSimple simply keeps a count
of live bytes and is intended to be the normal implementation.
SpaceTrackerDetailed maintains a bitmap and is simply useful
for debugging unit tests. It may be removed in the future.
rgw: rgw-orphan-list should use "plain" formatted `rados ls` output
The previous version that used "json-pretty" output for `rados ls`
added complications due to json's escaping of special characters. So
this version returns to the "plain" output for `rados ls` but deals
with entries (oids) that might have namespaces and/or locators as
well.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Jason Dillaman [Tue, 20 Oct 2020 15:13:11 +0000 (11:13 -0400)]
librbd: remove remainder of ImageCache API hooks
With the incorporation of the ImageDispatcher, there is no longer a
need for the ImageCache (and related) classes which were added as
a temporary workaround to incorporate the PWL cache.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Kefu Chai [Fri, 16 Oct 2020 17:10:24 +0000 (01:10 +0800)]
pybind/mgr/dashboard: use setUpClass for initializeing class
instead of relying on __init__(), use setUpClass() to initialize class
for testing. it turns out in pytest > 4, __init__() is called for the
test class but the attributes of the instantiated class is in turn overriden.
Kefu Chai [Tue, 20 Oct 2020 10:33:29 +0000 (18:33 +0800)]
pybind/mgr/dashboard: refactor overlong statement
to silence lint warning like:
services/tcmu_service.py:64:39: E126 continuation line over-indented for hanging indent':'./services/tcmu_service.py:64:39: E126 continuation line over-indented for hanging indent'}
2: 1 E126 continuation line over-indented for hanging indent
Kefu Chai [Thu, 8 Oct 2020 07:13:36 +0000 (15:13 +0800)]
tools/setup-virtualenv.sh: pass --use-feature=2020-resolver to pip
as long as pip supports this option, pass it to `pip install`
to silence warnings and errors like:
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
autopep8 1.5.4 requires pycodestyle>=2.6.0, but you'll have pycodestyle 2.5.0 which is incompatible.
pytest-cov 2.10.1 requires pytest>=4.6, but you'll have pytest 3.10.1 which is incompatible.
rgw/gc: fixing the condition when marker for a queue is
always reset to empty which causes RGWGC::list to get stuck in
a loop, which ultimately is broken out of when the queue's truncated
flag is false.
1. Check for entries size also while evaluating whether objects cache for
a gc object should be marked as 'transitioned' in case of cls_rgw_gc_list.
When there are no entries, we get back a return value of 0, and the
object cache is not marked as 'transitioned'.
2. Also for the last gc object, we need to check whether the queue is still
under process and set the correct flag.
Missing the two conditions above causes the GC::list to loop continously
over the same gc object.
rgw/gc: fix for incrementing the perf counter 'gc_retire_object'
in the new gc queue code for omap offload, when gc objects from queue
are deleted. This was missed out initially.
we should not proceed against user's will if dual stack is specified but
only one network for a network family can be found. the right fix is
have better error message and documentation, not to tolerate the
failure.
Milind Changire [Tue, 20 Oct 2020 03:49:48 +0000 (09:19 +0530)]
doc: document the mds_autoscaler mgr plugin
The MDS Autoscaler provides automation to maintain a required count of
MDSs in the system.
The MDS count in the system can be afected by:
* max_mds config option
* standby_count_wanted config option
* death of an active MDS Rank
Patrick Donnelly [Tue, 20 Oct 2020 02:26:52 +0000 (19:26 -0700)]
Merge PR #37529 into master
* refs/pull/37529/head:
qa: set rados op timeouts for mds/ceph-fuse
qa: print debug info on mount cleanup
qa: remove redundant rmr
qa: use null mode to prevent undesired changes to mountpoint
qa: unmount all clients before deleting the file system
osdc: add timeout configs for mons/osds
common: accept timespan for SaferCond.wait_for
This way, we can do a bulk scan of the store without building up
an unbounded amount of state in Transaction::read_set. Note that
such transactions will not be snapshot isolated.
Samuel Just [Wed, 26 Aug 2020 21:49:34 +0000 (14:49 -0700)]
crimson/.../lba_manager/btree: hold a reference to parent until added to cache
Currently, we need to rely on the Transaction::read_set to ensure cache
residence of a leaf node until TransactionManager adds the logical
extent to the cache. The next patch, however, will introduce a lazy
flag for Transaction's to enable doing snapshot inconsistent scans
without populating the read_set, so we'll want this to work without
it.