Tatjana Dehler [Thu, 3 May 2018 14:59:32 +0000 (16:59 +0200)]
mgr/dashboard: fix table in order to view boolean values
The table didn't handle boolean values correctly. If a table contained
booleans it resulted in a TypeError because the value can't be converted to
lower case. We need to convert the boolean value to string at first.
Tatjana Dehler [Wed, 25 Apr 2018 13:06:32 +0000 (15:06 +0200)]
mgr/dashboard: replace configuration html table with cd-table
The configuration documentation page still uses a normal html table.
This commit replaces the table with the cd-table to make use of its
advanced features here.
* refs/pull/21712/head:
qa/tasks/cephfs: add test for renewing stale session
client: invalidate caps and leases when session becomes stale
client: fix race in concurrent readdir
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Volker Theile [Wed, 2 May 2018 15:33:24 +0000 (17:33 +0200)]
mgr/dashboard: Refactor RGW backend
- Do some polishing in the docs.
- Refactor RgwClient::is_service_online() method. The system is considered as online if the response structure is valid. The response content itself is not validated in this case.
- Relocate NoCredentialsException and derive it from RequestException.
Kefu Chai [Mon, 7 May 2018 07:19:37 +0000 (15:19 +0800)]
test: silence -Wformat-truncation= warnings
this change silences following warnings:
: warning: ‘%s’ directive output may be truncated writing up to 127
bytes into a region of size between 109 and 119 [-W
format-truncation=]
snprintf(m_id_str, SysTestRunnable::ID_STR_SZ, "process_%d%s",
m_id, extra);
^~~~~~~~~~~~~~
~~~~~
Kefu Chai [Mon, 7 May 2018 06:42:52 +0000 (14:42 +0800)]
mds,messages: silence -Wclass-memaccess warnings
this change silences warnings like:
warning: ‘void* memset(void*, int, size_t)’ writing to an object of
non-trivial type ‘struct uuid_d’; use assignment instead [-Wcla
ss-memaccess]
memset(&z.cluster_fsid, 1, sizeof(z.cluster_fsid));
^
Kefu Chai [Sun, 6 May 2018 06:52:06 +0000 (14:52 +0800)]
os/filestore: silence error from libstdc++ in gcc-8
this change silences following error
stl_tree.h:452:21: error: static assertion failed: comparison object
must be invocable with two arguments of key type
static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{},
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kefu Chai [Sun, 6 May 2018 06:39:38 +0000 (14:39 +0800)]
messages,mon,osd: silence gcc-8 warnings related to memset()
this silences warnings like:
warning: ‘void* memset(void*, int, size_t)’ writing to an object of
non-trivial type ‘struct uuid_d’; use assignment instead [-Wcl\
ass-memaccess]
uuid_d only contains boost::uuids::uuid, which is "nil" initialized in
uuid_d's ctor. so we don't need to bother with memset() it with 0.
the same applies to entity_inst_t.
Kefu Chai [Sun, 6 May 2018 06:32:45 +0000 (14:32 +0800)]
cmake: specify missing settings for dpdk
* after upgrading to gcc-8, seems dpdk requires more settings to compile.
in which, CONFIG_RTE_MAX_VFIO_GROUPS=64 is copied from config/common_base.
* librte_bus_pci.a depends on librte_pci.a, so reorder the libraries
in DPDK_LIBRARIES.
Brad Hubbard [Tue, 1 May 2018 01:15:28 +0000 (11:15 +1000)]
mgr: Include daemon details in SLOW_OPS output
Currently there is no way to see which daemons were involved in a slow
op after the op has cleared. This change allows us to record which
daemons were implicated in the logs.
Kefu Chai [Fri, 4 May 2018 08:11:53 +0000 (16:11 +0800)]
librados: timeout on mgr_command()
because the mgrclient will be waiting for the mgrmap if the mgrmap
is not available, when the client is about to send a mgr command.
and monitor will drop the subscription requests if the client does not
have enough cap for reading mon, so unlike mon commands, the client
won't get an EACCES return code in this case.
in this change, a timeout machinary is introduced. and the client
will wait for "rados-mon-op-timeout" before it gives up. if this
setting is 0, it will wait forever.
* refs/pull/21805/head:
qa: move snap-hierarchy out of snaps workunits
qa: try snap format upgrade with multimds cluster
qa: add mds deactivation procedure for upgrades
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
The snapshot hierarchy it leaves behind can't be cleaned up by `rm -rf` which
breaks workunit cleanup. So, don't run this as part of normal snaps test.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/21374/head:
qa: add test for snap format upgrade
mds: initialize SnapServer::snaprealm_v2_since after journal replay
mds: properly distinguish cap update from snap flush
mds: update dev document of cephfs snapshot
doc: add release notes for cephfs snapshot
mds: allow snapshot by default for new filesystem
mds: close past parents after snaprealm format gets converted
mds: automaticly allow multi-active MDS after scrubbing all inodes
mds: don't mark primary dentry damaged if inode has been repaired
mds: upgrade snaprealm format during scrub
mds: allow scrubbing mdsdir
mds: cleanup scrub code
mds: show health warning if multimds with old format snapshots
mds: automaticly allow multi-active MDS after removing all old snapshots
mds: disallow multi-active MDS if snapshot was ever created by pre-mimic mds
mds: validate SnapInfo::long_name before using it
mds: don't bump snaptable last_snap when renaming snapshot
mds: properly save snaptable after upgrading version
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Li Wang [Thu, 3 May 2018 14:04:05 +0000 (14:04 +0000)]
tools/rados: allow list objects in a pg
When the cluster is not healthy, normally only a very few pgs encounter
problems, and the operator wants to know which objects may potentially
get lost.
Signed-off-by: Li Wang <laurence.liwang@gmail.com>
Brad Hubbard [Tue, 1 May 2018 01:15:28 +0000 (11:15 +1000)]
mgr: Include daemon details in SLOW_OPS output
Currently there is no way to see which daemons were involved in a slow
op after the op has cleared. This change allows us to record which
daemons were implicated in the logs.
For a large directory, program needs to issue multiple readdir
syscalls to get all dentries. When there are multiple programs
read the directory concurrently. Following sequence of events
can happen.
- program calls readdir with pos = 2. ceph sends readdir request
to mds. The reply contains N1 entries. ceph adds these N1 entries
to readdir cache.
- program calls readdir with pos = N1+2. The readdir is satisfied
by the readdir cache, N2 entries are returned. (Other program
calls readdir in the middle, which fills the cache)
- program calls readdir with pos = N1+N2+2. ceph sends readdir
request to mds. The reply contains N3 entries and it reaches
directory end. ceph adds these N3 entries to the readdir cache
and marks directory complete.
The second readdir call does not update dirp->cache_index. ceph adds
the last N3 entries to wrong places.