Kefu Chai [Sun, 9 Jun 2019 09:33:19 +0000 (17:33 +0800)]
debian/control: remove "libnl-3-dev" from build dependencies
what we need is "libnl-genl-3-dev", libnl-3-dev should be a dependency
of "libnl-genl-3-dev". the only reason we would have added it, is if
the package maintainer of "libnl-genl-3-dev" fails to do so. and
the packages of "libnl-genl-3-dev" on both debian and ubuntu just look
correct in this perspective.
Kefu Chai [Sun, 9 Jun 2019 09:12:27 +0000 (17:12 +0800)]
cmake: rewrite Findgenl to support components argument
* rename genl to nl:
"genl" is not very specific without more context. and libnl is actually
a library suite. so it would be better if we can rename the library to
be found to "libnl", and by following the naming convention of CMake,
in this change, Findgenl.cmake is renamed to Findnl.cmake
* Findnl.cmake: support the component argument, in our specific case,
what we want is "libnl-genl" library, which is one of the libraries
offered by libnl. so let's just make it a component.
* Findnl.cmake: should pass the names of the required variables instead of
their values to `find_package_handle_standard_args()`. before this
change, we pass `GENL_LIBRARIES` to this function. it was correct at the
first glance. but it is not able to handle the case where case where
libnl-genl is not installed. so the fix is to pass all the names of
required library paths to this function. in this change, their name
are concatenated to a single variable -- `nl_LIBRARIES`, and the
value of this variable is passed to
`find_package_handle_standard_args()`. and the error message would
be more specific this way if libnl-genl is not found:
Could NOT find nl (missing: nl_genl_LIBRARY)
* Findnl.cmake: add nl::<component> as imported library, it helps the
consumer of these libraries to import them -- no need to
specify the `target_include_directories()` separately anymore.
* move the find_package() code to where it is used. it helps to improve
the readability.
* remove `HAVE_GENL` variable: it's not used anywhere.
* drop the messages of "Not using foobar", they do not help.
Sage Weil [Tue, 18 Jun 2019 15:02:40 +0000 (10:02 -0500)]
Merge PR #28229 into master
* refs/pull/28229/head:
os/bluestore: do garbage collection if blob count is too high.
common/perf_conters: make dump_formatted_xxx funcs as const.
os/bluestore: store extents for GC within WriteContext.
os/bluestore: GC class, make some members local.
os/bluestore: vector -> interval set in GC to track extents to collect.
tests/store_test: many-many spanning blobs test case
Patrick Donnelly [Fri, 14 Jun 2019 21:51:07 +0000 (14:51 -0700)]
Merge PR #28082 into master
* refs/pull/28082/head:
mgr / volumes: improve error handling
py / cephfs: invoke base class Error::__init__() from OSError::__init__()
mgr / volumes: carve out subvolume operations as a separate class
mgr / volumes: introduce subvolume specification class
mgr / volumes: carve of volume as a separate class
Stephan Müller [Wed, 17 Apr 2019 12:17:44 +0000 (14:17 +0200)]
mgr/dashboard: OSD custom action button removal
Now the custom action dropdown is removed from the OSD component. It was
nearly a clone of the table actions button component, but it had a
different behavior as it did not show the main action inside the dropdown.
Fixes: https://tracker.ceph.com/issues/39702 Signed-off-by: Stephan Müller <smueller@suse.com>
Kefu Chai [Fri, 14 Jun 2019 06:57:55 +0000 (14:57 +0800)]
crimson/osd: ignore exception when stopping osd
OSD::stop() is a top-level method in the sense that it will be called
directly when engine stops. so it should not throw any exceptions.
instead, we will print out the error and ignore the exception if any.
Venky Shankar [Sun, 19 May 2019 17:34:57 +0000 (13:34 -0400)]
mgr / volumes: improve error handling
This cleans up lots of return-fu statements and make the source
look much more pythonic. Functions should raise an instance of
VolumeException() class wherever necessary (error handling).
Venky Shankar [Fri, 17 May 2019 05:40:37 +0000 (01:40 -0400)]
mgr / volumes: carve out subvolume operations as a separate class
Move (and refactor) subvolume specific operations from main module
source to SubVolume class in a new subvolume source. Also, provide
hooks in VolumeClient to forward subvolume specific opertaions to
this class.
Venky Shankar [Thu, 16 May 2019 05:54:12 +0000 (01:54 -0400)]
mgr / volumes: introduce subvolume specification class
Specifications class that represents a unique subvolume
identified by (subvolume-id, group-id) tuple. Provide
heleper functions for fetching various subvolume specific
attributes such as subvolume path, group path etc.
Kefu Chai [Thu, 13 Jun 2019 08:28:29 +0000 (16:28 +0800)]
debian/: use ceph-osd for packaging crimson-osd
* debian/: remove ceph-crimson-osd package.
* debian/control: set `CEPH_OSD_BASENAME` env variable, which
will be consumed by `ceph-osd.install`. alternatively, we could
rename crimson-osd to ceph-osd in `override_dh_auto_install`,
but let's go with this way at this moment, unless `mv` in
`override_dh_auto_install` is proved to be better.
* ceph-osd.install: replace ceph-osd with crimson-osd if
`CEPH_EXTRA_CMAKE_ARGS` has `WITH_SEASTAR` in it. this only
happens when we are packaging the "crimson" flavor packages from
jenkins.
* ceph-osd.install: `chmod +x` this file, as we need to use
`/usr/bin/dh-exec` as the interpreter of it to perform variable
substitution and install.
Kefu Chai [Wed, 12 Jun 2019 08:32:55 +0000 (16:32 +0800)]
cmake: disable isal and vhost support of SPDK
* isal needs nasm, which is a new dependency. so let's disable it
at this moment.
* vhost requires DPDK compiled with vhost enabled. but it's disabled
when we compile DPDK.
Mykola Golub [Thu, 13 Jun 2019 11:05:17 +0000 (12:05 +0100)]
journal: wait for in flight advance sets on stopping recorder
Before object overflow detection optimization (83461c42b) the
overflow was detected when trying to send data, so when an object
set was advanced we always had some data and flush always
completed later. But now we detect overflow on client side, it
may happen when buffer is empty and flush may complete
when "advance object set" is still in flight.
Kefu Chai [Wed, 12 Jun 2019 11:44:07 +0000 (19:44 +0800)]
common/options: make mon_clean_pg_upmaps_per_chunk unsigned
we don't use a negative number for some different purpose, for instance,
for disabling this option. and this helps to silence following warning:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/mon/OSDMonitor.cc:
In member function 'virtual void
OSDMonitor::encode_pending(MonitorDBStore::TransactionRef)':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/mon/OSDMonitor.cc:1195:31:
warning: comparison of integer expressions of different signedness:
'std::vector<pg_t>::size_type' {aka 'long unsigned int'} and 'int64_t'
{aka 'long int'} [-Wsign-compare]
if (pgs_to_check.size() < g_conf()->mon_clean_pg_upmaps_per_chunk
* 2) {
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Patrick Donnelly [Wed, 12 Jun 2019 21:07:22 +0000 (14:07 -0700)]
Merge PR #26737 into master
* refs/pull/26737/head:
qa/cephfs: update tests for stale session handling
mds: change how mds revoke stale caps
mds: don't mark unresponsive sessions holding no caps stale
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
- be specific about stopped OSDs
- add missing '--no-mon-config' option
- fix indent of here script delimiting identifier
- use $host variable in for loop
Signed-off-by: Hannes von Haugwitz <hannes@vonhaugwitz.com>
Sage Weil [Wed, 12 Jun 2019 14:11:49 +0000 (09:11 -0500)]
Merge PR #22446 into master
* refs/pull/22446/head:
relicense LGPL-2.1 code as LGPL-2.1 or LGPL-3.0
COPYING: add reference to a few Apache-2.0 licensed source files
debian/copyright: sync with COPYING
COPYING: LGPL2.1 -> LGPL-2.1
COPYING: extra bits from debian/copyright
Reviewed-by: Jason Dillaman <dillaman@redhat.com> Reviewed-by: Neha Ojha <nojha@redhat.com> Reviewed-by: Sebastian Wagner <swagner@suse.com>
Tiago Melo [Tue, 4 Jun 2019 11:28:26 +0000 (12:28 +0100)]
script/ceph-backport.sh: Add prepare function
Add a new flag, --prepare, that when used will fetch all necessary info and
cherrypick all original commits automatically.
It will also prevent the main code to be executed.
After running with --prepare, and if there were no conflicts, you can simply
remove the flag from the command and run the script again.
This time it will run the main code and create the PR and update the backport
issue.