so we need to pass -fPIC by ourselves. otherwise we'd have
/usr/bin/ld: ../../liburing/src/liburing.a(setup.ol): relocation R_X86_64_PC32 against symbol `io_uring_queue_mmap' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src/test/fio/CMakeFiles/fio_ceph_objectstore.dir/build.make:154: recipe for target 'lib/libfio_ceph_objectstore.so' failed
Kefu Chai [Mon, 9 Nov 2020 07:34:55 +0000 (15:34 +0800)]
cmake: use make explicitly to build fio
we cannot assume that user uses "make" as the generator of cmake, if,
for instance, ninja is used, `$(MAKE)` is not a valid variable in the
generated `build.ninja`. so we should use "make" explicitly.
Kefu Chai [Mon, 9 Nov 2020 06:34:00 +0000 (14:34 +0800)]
crimson/os: do not configure seastar allocator for alien threads
4cd2b00d2a703510777bd761609be221859bd790 allows us to colocate seastar
allocator used by seastar reactors and libc allocator used by alien threads,
there is no need to configure seastar allocator for alien thread
anymore.
Greg Farnum [Mon, 2 Nov 2020 08:14:48 +0000 (08:14 +0000)]
mon: retain disallowed leader list on restart
We were only setting this when new monmaps were read from paxos -- whoops!
Pull apart that mechanism a little bit and make sure to set them before
doing elections, as part of bootstrap.
Greg Farnum [Thu, 29 Oct 2020 06:10:23 +0000 (06:10 +0000)]
mon: Output the real leader in ::_quorum_status() and get_leader_name()
These functions previously assumed the first mon in the quorum
was the leader. That isn't accurate if the first monitor is
disallowed or it lost a connectivity-mode election, though.
Greg Farnum [Thu, 29 Oct 2020 05:58:56 +0000 (05:58 +0000)]
mon: Do not increase compatv when using monitor location or stretch mode
For mon_info_t, I first wrote things so that when monitors get a location
added in MonMap::mon_info_t, I bumped the struct_v to 5 and also bumped
the min_compat to 5. This made sure that nobody could decode the
struct and lose the location info, which if it were a monitor
would be very bad.
And for the MonMap, when stretch mode is enabled I bumped up the
comptav (in addition to the always-increased struct_v), for the same reason.
But clients also have to decode these structures, and we can't
disallow older clients from connecting to a stretched cluster.
Happily, usage of any stretch modes already requires a feature
bit and sets it as required in the monmap, so these are already
gated. Therefore, just don't set new compat values in these cases.
While at it, also gate setting the location on the monmap indicating
all monitors are updated.
Kefu Chai [Thu, 5 Nov 2020 16:16:45 +0000 (00:16 +0800)]
cmake: set GIT_SHALLOW and UPDATE_DISCONNECTED
* GIT_SHALLOW=TRUE, so we don't pull the full git history,
as we don't care about it.
* UPDATE_DISCONNECTED=TRUE, to skip the UPDATE step, this change
somehow works around
https://gitlab.kitware.com/cmake/cmake/-/issues/19703. otherwise
cmake keeps building liburing.
Kefu Chai [Thu, 5 Nov 2020 16:37:32 +0000 (00:37 +0800)]
blk/kernel/io_uring: bump liburing to v0.7
* use functions exposed by liburing instead of using syscalls
* v0.7 is the latest release at the time of writing, as liburing is under
active development. it'd be better to use a newer release.
* also use https://git.kernel.dk/liburing instead of
http://git.kernel.dk/liburing.
Matt Benjamin [Wed, 4 Nov 2020 17:02:27 +0000 (12:02 -0500)]
rgw_file: fix some zipper flow for RGWLibContinuedReq
Some bits of the standard Zipper conversions were missed for
the RGWLibContinuedReq case, where the setup is encapsulated in
the request, but execution is broken up in to steps. This
currently affects only RGWWriteRequest.
Fixes: https://tracker.ceph.com/issues/48136 Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Kefu Chai [Thu, 5 Nov 2020 06:27:35 +0000 (14:27 +0800)]
cmake: rename crimson tests named like foo_bar to foo-bar
for two reasons:
* less typing: no need to press "shift" for inputting "_"
* more consistent with executable names like "ceph-conf"
* simpler to grep when compiling the tests. there is chance
we need to kill the dead jobs on a jenkins worker node
where it happens to be compiling the tests.
* refs/pull/37899/head:
qa: avoid using ceph.dir.entries for empty check
qa: do not test dir size equals rbytes
qa: disable check for value kclient fails to get
qa: leave one standby available to avoid warning
qa: do not check access timestamps
qa: ignore skip errors for kclient
qa: add more clients for test_volume_client
qa: accept client returning pool id for layout
qa: ignore expected warning about client missing features
qa: do not fail on skip
qa: fix mount directory
qa: rename distro link to distros
qa: accept eio for mount failure
qa: unmount volumes before removal
qa: some sessionmap tests require fuse
qa: remove obsolete test
qa: do not fail on test skip
qa: use more OSDs for workload tests
qa: use 4 clients for volumes testing
qa: relocate tasks
qa: rename workload suite
qa: relocate new tasks from fs:basic_functional
qa: remove kcephfs suite
qa: move kcephfs:mixed-clients to fs
qa: remove dead kcephfs:cephfs suite
qa: merge snap tests for kcephfs/fs
qa: add new fs:shell sub-suite
qa: remove task-less kcephfs:recovery suite
qa: add new fs:volumes sub-suite
qa: merge fs:basic_functional and kcephfs:recovery
qa: move kcephfs:thrash to fs:thrash
qa: reorganize thrash tasks
qa: move multifs/failover tests
qa: run norstats workunit for klient
qa: merge workload tests from kcephfs with fs
qa: use consistent syntax
qa: remove inline testing
qa: move log-rotate config to common yaml
qa: remove fuse default permissions config
qa: fix whitespace
Reviewed-by: Kotresh Hiremath Ravishankar <khiremat@redhat.com> Reviewed-by: Ramana Raja <rraja@redhat.com>
Avan Thakkar [Tue, 13 Oct 2020 09:52:48 +0000 (15:22 +0530)]
mgr/dashboard: add description for CRUSH Ruleset
Fixes: https://tracker.ceph.com/issues/48067 Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Adds a description for CRUSH Ruleset column in pools table in the pool creation dialogue
Kefu Chai [Wed, 4 Nov 2020 14:40:32 +0000 (22:40 +0800)]
osd/PGLog: do not use unique_ptr explicitly
* do not use unique_ptr<> explicitly, use `seastar::do_with()` for
better readability
* use seastar::do_until() instead of seastar::repeat() for better
readability. plain boolean is simpler than
`seastar::stop_iteration::yes`
* do not capture variables using FuturizedStoreLogReader if we could
pass them by instant parameters.
* rename "start()" to "read()". as "read" is more specific in this
context.
Kefu Chai [Wed, 4 Nov 2020 09:50:15 +0000 (17:50 +0800)]
crimson/osd: let OmapIterator mutators return future<>
instead of returning future<int> where the int represents an errno which
is not checked by any callers, we should just return a future<>, we
could erroratorize it later on, but returning an int is not the right
way to handle this, and it is not consistent with how we handle other
errors elsewhere in crimson.
Kiefer Chang [Wed, 4 Nov 2020 03:00:21 +0000 (11:00 +0800)]
mgr/dashboard: disable cluster selection in NFS export editing form
We should not allow changing an export's cluster because an export ID
might live in one cluster but not in another one. Editing a non-existing
export in a cluster causes an error.
* refs/pull/37881/head:
doc/mgr/orchestrator: Update about nfs add in rook
mgr/rook: Refactor nfs add/apply methods
mgr/rook: Udpate to mypy py3 type style in _create(), _update() and apply()
mgr/rook: Remove unused 'current' argument from update_func method
Reviewed-by: Michael Fritch <mfritch@suse.com> Reviewed-by: Travis Nielsen <tnielsen@redhat.com>