Sage Weil [Wed, 22 Jan 2020 14:23:36 +0000 (08:23 -0600)]
Merge PR #32726 into master
* refs/pull/32726/head:
mon/ConfigMonitor: clean out bad config records
mon/ConfigMonitor: make 'config get' on fsid work
common/options: remove NO_MON_UPDATE from mon_dns_srv_name
mon/ConfigMonitor: do not 'config get' on NO_MON_UPDATE options
mon/ConfigMonitor: do not set NO_MON_UPDATE values
Patrick Donnelly [Wed, 22 Jan 2020 04:00:43 +0000 (20:00 -0800)]
Merge PR #31232 into master
* refs/pull/31232/head:
test: test case for openfiletable MAX_ITEMS_PER_OBJ value verification
mds/OpenFileTable: match MAX_ITEMS_PER_OBJ to osd_deep_scrub_large_omap_object_key_threshold
Reviewed-by: Zheng Yan <zyan@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Patrick Donnelly [Wed, 22 Jan 2020 03:57:26 +0000 (19:57 -0800)]
Merge PR #31817 into master
* refs/pull/31817/head:
mds: send delegated_inos in openc response
mds: make take_ino just return 0 if it can't find one
mds: add infrastructure for delegating inos from the prealloc set
mds: fix dump of prealloc and used inos
mds: don't warn when inodes are not allocated out sequentially
mds: fix decoding version for EMetaBlob
mds: remove MDRequestImpl::did_ino_allocation()
mds: add a comment explaining what session_info_t is
doc: fix awkward phrasing in caching.txt
Reviewed-by: Zheng Yan <zyan@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Sage Weil [Thu, 16 Jan 2020 22:10:33 +0000 (16:10 -0600)]
osd/PeeringState: always use target pg log length
Previously, the min and max log length was the same, so we didn't adjust
our log length based on whether we were degraded. Preserve that behavior
by removing the degraded check entirely. This keeps memory usage
consistent when recovery happens.
Sage Weil [Thu, 16 Jan 2020 17:22:34 +0000 (11:22 -0600)]
osd: trim pg logs based on a per-osd budget
Set the default budget based on the current defaults: 3000 per osd, and a
rule of thumb target of 100 PGs per OSD. Set the per-PG trim target
by dividing the overall value by the number of PGs on the OSD.
Increase the max pg log length alone, so if the OSD has <100 PGs,
those PGs will get more entries. Reduce the minimum to be smaller than
the max. Use the min/max config options to bracket what is allocated to
a single PG.
Sage Weil [Tue, 21 Jan 2020 21:17:19 +0000 (15:17 -0600)]
unittest_lockdep: avoid any threads for death test
Heed the warning:
[WARNING] /home/sage/src/ceph/src/googletest/googletest/src/gtest-death-test.cc:1122:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 4 threads. See https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests-and-threads for more explanation and suggested solutions, especially if this is the last message you see before your test times out.
Fixes: https://tracker.ceph.com/issues/43403 Signed-off-by: Sage Weil <sage@redhat.com>
Ilya Dryomov [Tue, 21 Jan 2020 18:41:47 +0000 (19:41 +0100)]
doc/cephfs/client-auth: description and example are inconsistent
According to the path restriction example, the filesystem name
should be cephfs_a, not cephfs. Converge on cephfs_a to avoid it
being confused with with the pool tag, which is always cephfs.
This was introduced in 160c4bfeb811 ("mon/AuthMonitor: Use new osd
auth caps for ceph fs authorize").
Tatjana Dehler [Fri, 17 Jan 2020 14:54:05 +0000 (15:54 +0100)]
mgr/dashboard: fix visibility of pwdExpirationDate field
Show the 'pwdExpirationDate' form field only if SSO is not enabled.
Also show a helper message if 'pwdExpirationSpan' is '0' to let
the admin know that the password will only expire once.
Fixes: https://tracker.ceph.com/issues/43523 Signed-off-by: Tatjana Dehler <tdehler@suse.com>
Patrick Donnelly [Tue, 21 Jan 2020 01:24:46 +0000 (17:24 -0800)]
Merge PR #32667 into master
* refs/pull/32667/head:
mds: track high water mark for purges
qa: use correct variable for exception debug
mds: mark purge queue protected members private
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Patrick Donnelly [Wed, 15 Jan 2020 00:10:53 +0000 (16:10 -0800)]
qa: save MDS epoch barrier
Rather than verify the latest OSDMap is the same as the rank's
osdmap_epoch_barrier, just use the rank's version. The OSDMap may change
out-of-band with the test startup and thus the epoch's would diverge.
The file system and rank is fresh for each test so there's no reason to
care if the MDS barrier is one epoch behind the latest.
Fixes: https://tracker.ceph.com/issues/43554 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Jeff Layton [Fri, 17 Jan 2020 12:48:12 +0000 (07:48 -0500)]
mount.ceph: remove arbitrary limit on size of name= option
Aaron was getting back -ERANGE errors when trying to mount using
a long name= option. The issue is that the destination buffer for the
"key=" string is not big enough to hold long names.
When I overhauled the mount.ceph code recently, I made this buffer much
smaller than before figuring that it didn't need to be any larger than
the length of "secret=<base64 encoded key>".
In the case where the secret is set in the keyring though, this buffer
needs to be able to hold a string like "key=client.<cephx name>". The
cephx name can be of arbitrary length, however.
Rework the code to just safe_cat the strings directly into the options
buffer, eliminating an extra copy and the need for an arbitrary limit.
This also allows us to remove get_secret_option() from the the common
code as well.
Fixes: https://tracker.ceph.com/issues/43649 Reported-by: Aaron <aarongmldt@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com>
Patrick Donnelly [Mon, 20 Jan 2020 19:23:09 +0000 (11:23 -0800)]
qa: log warning on scrub error
Instead of printing the (useless) traceback, just print a warning about
ignoring the failure. The traceback makes it harder to search for the
real problem in the teuthology log.
Fixes: https://tracker.ceph.com/issues/43718 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Patrick Donnelly [Mon, 20 Jan 2020 19:13:06 +0000 (11:13 -0800)]
Merge PR #32524 into master
* refs/pull/32524/head:
qa/xfstests_dev: change deps for xfstests-dev on ubuntu
qa/cephfs: change deps for xfstests-dev on centos8
vstart_runnner: add sh method to LocalRemote
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Sage Weil [Sun, 19 Jan 2020 21:06:45 +0000 (15:06 -0600)]
mon/ConfigMonitor: do not set NO_MON_UPDATE values
These options are special. Since we can't get the values from the mon,
we also shouldn't store them there. Most of them are not options that
can be changed anyway.
msg/async: mark down local_connection before draining the stack.
`AsyncMessenger` has `local_connection` – an instance of
`AsyncConnection` used to send messages to itself (loop back).
Connections are handled by `EventCenter` in its dedicated
thread. When shutting down a messenger, it must be ensured
there is no task left in the `EventCenter`'s queue. Otherwise
a use-after-free can happen. That's the reason why `shutdown()`
of `AsyncMessenger` does `mark_down_all()` on connections
**before** draining the stack. The latter actually injects a task
into all `EventCenter` instances and waits for its completion
(synchronization barrier).
However, that's not the case for `local_connection`. Without
the patch it's marked down by the messenger's destructor
far **after** the synchronization barrier. This behavior is
dangerous when an implementation of `mark_down()` creates
a new task to be executed inside the boundaries of corresponding
`EventCenter` instance.
The fix unifies handling of `local_connection` with other
connections in the aspect of the shutdown phase.
Volker Theile [Mon, 13 Jan 2020 09:06:25 +0000 (10:06 +0100)]
mgr/dashboard: Introduce layout components
This PR will simplify the code of the app component in that way that it introduces layout components. Depending on the route a specific layout is choosen. Currently there are two layouts:
- Workbench
- Blank
The blank layout, which does not show any navigation controls, is used for the error, login and logout pages. The workbench layout shows the navigation controls and is mainly used for all pages that are used to configure Ceph.
The 403 and 404 pages have a 'Back' button that will redirect to /login. The Angular router will redirect to /dashboard if logged in.