]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agocommon: remove log_early configuration option 37175/head
Changcheng Liu [Tue, 13 Oct 2020 01:47:16 +0000 (09:47 +0800)]
common: remove log_early configuration option

After deciding to always enable tracking log in early phase, there's no
need to keep "log_early" option here and remove it directly.

Suggested-by: Kefu Chai <kefu@redhat.com>
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agocommon: remove useless log_early check condition here
Changcheng Liu [Wed, 16 Sep 2020 01:50:54 +0000 (09:50 +0800)]
common: remove useless log_early check condition here

The code logic shows that Log thread needs to be started even
log_early is false.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agoMerge pull request #37315 from changchengx/paxos_extend
Kefu Chai [Mon, 19 Oct 2020 06:15:01 +0000 (14:15 +0800)]
Merge pull request #37315 from changchengx/paxos_extend

mon: define paxos services indexes using enum and cleanups

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Joao Eduardo Luis <joao@suse.com>
4 years agoMerge pull request #36536 from matthewoliver/pick_address_warning_doc_update
Kefu Chai [Mon, 19 Oct 2020 06:12:52 +0000 (14:12 +0800)]
Merge pull request #36536 from matthewoliver/pick_address_warning_doc_update

common/pick_address: support IPv4 and IPv6 dual stack mode

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37670 from changchengx/crypto_plugin
Kefu Chai [Mon, 19 Oct 2020 06:10:06 +0000 (14:10 +0800)]
Merge pull request #37670 from changchengx/crypto_plugin

crypto: remove useless code and unify file name variable

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37635 from jecluis/wip-46816
Kefu Chai [Mon, 19 Oct 2020 06:08:09 +0000 (14:08 +0800)]
Merge pull request #37635 from jecluis/wip-46816

mon: have 'mon stat' output json as well

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #33392 from alram/master
Kefu Chai [Mon, 19 Oct 2020 04:44:51 +0000 (12:44 +0800)]
Merge pull request #33392 from alram/master

osdmaptool: add --mark-{up,in} and --adjust-crush-weight options

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge PR #36603 into master
Patrick Donnelly [Mon, 19 Oct 2020 01:44:51 +0000 (18:44 -0700)]
Merge PR #36603 into master

* refs/pull/36603/head:
test: add test for setting ceph mirror virtual xattr
tests/pybind/cephfs: cleanup xattrs before starting tests
client: filter ceph.* xattrs from listing
client: force an attr fetch for ceph xattrs
client: changes for ceph.mirror.info xattr
mds: restrict setting/removing certain xattrs in ceph namespace
mds: introduce ceph.mirror.info virtual xattr
mds: customize xattr handling using dispatch handlers
mds: introduce is_ceph_vxattr() helper

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge pull request #37699 from dillaman/wip-47880
Mykola Golub [Sun, 18 Oct 2020 12:43:51 +0000 (15:43 +0300)]
Merge pull request #37699 from dillaman/wip-47880

journal: possible race condition between flush and append callback

Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agoMerge pull request #37698 from tchaikov/wip-crimson-do-until
Kefu Chai [Sat, 17 Oct 2020 01:32:23 +0000 (09:32 +0800)]
Merge pull request #37698 from tchaikov/wip-crimson-do-until

crimson/common: schedule action only if the future is not available

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 years agoMerge pull request #37695 from tchaikov/wip-dashboard-pep8
Kefu Chai [Fri, 16 Oct 2020 17:32:59 +0000 (01:32 +0800)]
Merge pull request #37695 from tchaikov/wip-dashboard-pep8

mgr/dashboard: do not use "l" for variable name

Reviewed-by: Tatjana Dehler <tdehler@suse.com>
4 years agoMerge pull request #37645 from dillaman/wip-librbd-aio-completion-race
Mykola Golub [Fri, 16 Oct 2020 15:45:32 +0000 (18:45 +0300)]
Merge pull request #37645 from dillaman/wip-librbd-aio-completion-race

librbd: update AioCompletion return value before evaluating pending count

Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agoMerge pull request #37643 from dillaman/wip-47840
Mykola Golub [Fri, 16 Oct 2020 15:45:04 +0000 (18:45 +0300)]
Merge pull request #37643 from dillaman/wip-47840

librbd: ignore -ENOENT error when disabling object-map

Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agoMerge pull request #37444 from dillaman/wip-librbd-copyup-api
Mykola Golub [Fri, 16 Oct 2020 15:44:36 +0000 (18:44 +0300)]
Merge pull request #37444 from dillaman/wip-librbd-copyup-api

librbd: support the ability to process parent data prior to copyup

Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Or Ozeri <oro@il.ibm.com>
4 years agojournal: possible race condition between flush and append callback 37699/head
Jason Dillaman [Fri, 16 Oct 2020 15:25:39 +0000 (11:25 -0400)]
journal: possible race condition between flush and append callback

When notifying the journal recorder of an overflow or if the object
close request has completed due to no more in-flight IO, it was
possible for a race between a flush request and the processing of
an append completion to attempt to kick off duplicate notifications.
Since the overflowed and closed callbacks are properly protected from
duplicates, use a counter instead of a boolean to track possible
in-flight handler callbacks.

Fixes: https://tracker.ceph.com/issues/47880
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agocrimson/common: schedule action only if the future is not available 37698/head
Kefu Chai [Fri, 16 Oct 2020 14:07:50 +0000 (22:07 +0800)]
crimson/common: schedule action only if the future is not available

otherwise we could call do_until() recursively if we have other tasks
which need to prempt the reactor and current future's state is actually
always available.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agomgr/dashboard: do not use "l" for variable name 37695/head
Kefu Chai [Fri, 16 Oct 2020 10:51:04 +0000 (18:51 +0800)]
mgr/dashboard: do not use "l" for variable name

see also https://www.flake8rules.com/rules/E741.html

also silences flake8 warnings like:

2: {tty:'./controllers/home.py:90:26: E741 ambiguous variable name 'l'':'./controllers/home.py:90:26: E741 ambiguous variable name 'l''}
2: {tty:'./controllers/logs.py:52:13: E741 ambiguous variable name 'l'':'./controllers/logs.py:52:13: E741 ambiguous variable name 'l''}
2: {tty:'./services/ganesha.py:36:40: E741 ambiguous variable name 'l'':'./services/ganesha.py:36:40: E741 ambiguous variable name 'l''}
2: 3     E741 ambiguous variable name 'l'

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37687 from tchaikov/wip-crimson-errorator
Kefu Chai [Fri, 16 Oct 2020 08:50:10 +0000 (16:50 +0800)]
Merge pull request #37687 from tchaikov/wip-crimson-errorator

crimson/common: do not take from a future twice

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
4 years agoMerge pull request #37602 from tspmelo/wip-flake8-ignore
Kiefer Chang [Fri, 16 Oct 2020 07:27:35 +0000 (15:27 +0800)]
Merge pull request #37602 from tspmelo/wip-flake8-ignore

mgr/dashboard: Remove some Flake8 ignore rules

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
4 years agocrimson/common: do not take from a future twice 37687/head
Kefu Chai [Fri, 16 Oct 2020 06:11:52 +0000 (14:11 +0800)]
crimson/common: do not take from a future twice

before this change, in our specialization of seastar::do_until(),
we access `f` after calling `f.get()`, this is not correct. as `f.get()`
actually moves `f._state` away and detaches the associated promise if any.
so we cannot call `f._then()` anymore after calling `f.get()`. as
`f._then()` schedules `f` by detaching the future from promise and
attaching the scheduled task to the promise. but `future_base::detach_promise()`
does not check `_promise` before accessing it, hence the segfault.

after this change, the order of the checks is rearranged so that
`f.get()` is called at the end. and also use `f.get0()` to be more
explicit, as we are accessing the only element of the returned
value.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37684 from ivancich/rgw-yummy-orphan-testing
J. Eric Ivancich [Thu, 15 Oct 2020 20:14:07 +0000 (16:14 -0400)]
Merge pull request #37684 from ivancich/rgw-yummy-orphan-testing

rgw: use yum rather than dnf for teuthology testing of rgw-orphan-list

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
4 years agorgw: use yum rather than dnf for testing rgw-orphan-list 37684/head
J. Eric Ivancich [Thu, 15 Oct 2020 18:14:04 +0000 (14:14 -0400)]
rgw: use yum rather than dnf for testing rgw-orphan-list

The teuthology testing for rgw-orphan-list needs to install
`s3cmd`. Switch from using dnf to yum to work on a wider variety of
platforms.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 years agoMerge pull request #37660 from adamemerson/wip-datalog-fix
Adam C. Emerson [Thu, 15 Oct 2020 16:03:13 +0000 (12:03 -0400)]
Merge pull request #37660 from adamemerson/wip-datalog-fix

cls/fifo: Switch use CLS_ERR for errors
rgw/fifo: Fix a few missed return value assignments
rgw/fifo: Add some error logging
rgw/fifo: Catch two instances journaling a new part
rgw/fifo: Use unique_ptr and explicit release for callbacks

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
4 years agoMerge pull request #37575 from bk201/wip-47742
Joshua Schmid [Thu, 15 Oct 2020 13:02:50 +0000 (15:02 +0200)]
Merge pull request #37575 from bk201/wip-47742

qa/suites/rados/cephadm/dashboard: fix creating OSD failure

4 years agoMerge pull request #37669 from lixiaoy1/fix_cache_state_ut_1015
Jason Dillaman [Thu, 15 Oct 2020 12:47:57 +0000 (08:47 -0400)]
Merge pull request #37669 from lixiaoy1/fix_cache_state_ut_1015

rbd/cache: fix UTs related to image cache state

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mahati Chamarthy <mahati.chamarthy@intel.com>
4 years agorbd/cache: fix UTs related to image cache state 37669/head
lixiaoy1 [Thu, 15 Oct 2020 11:00:07 +0000 (07:00 -0400)]
rbd/cache: fix UTs related to image cache state

Signed-off-by: Li, Xiaoyan <xiaoyan.li@intel.com>
4 years agoMerge pull request #37633 from tchaikov/wip-pybind-rados-cleanup
Kefu Chai [Thu, 15 Oct 2020 10:54:38 +0000 (18:54 +0800)]
Merge pull request #37633 from tchaikov/wip-pybind-rados-cleanup

pybind/rados: add more type hintings and cleanup

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #37624 from lxbsz/cram
Kefu Chai [Thu, 15 Oct 2020 10:53:38 +0000 (18:53 +0800)]
Merge pull request #37624 from lxbsz/cram

qa/tasks: add a 'parallel' option support for the cram task

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #37621 from dsavineau/cephadm_ntpsec
Kefu Chai [Thu, 15 Oct 2020 10:16:19 +0000 (18:16 +0800)]
Merge pull request #37621 from dsavineau/cephadm_ntpsec

cephadm: allow ntpsec service

Reviewed-by: Joshua Schmid <jschmid@suse.de>
4 years agoMerge pull request #37601 from tspmelo/wip-rm-wait-for-expected-get-result
Kefu Chai [Thu, 15 Oct 2020 10:12:54 +0000 (18:12 +0800)]
Merge pull request #37601 from tspmelo/wip-rm-wait-for-expected-get-result

qa/mgr: Remove _wait_for_expected_get_result

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
4 years agocrypto/isa-l: remove redundant declare shared library 37670/head
Changcheng Liu [Thu, 15 Oct 2020 06:56:01 +0000 (14:56 +0800)]
crypto/isa-l: remove redundant declare shared library

isal_crypto_plugin_objs is same as ceph_crypto_isal

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agocommon/plugin: correct output filename path
Changcheng Liu [Thu, 15 Oct 2020 06:53:27 +0000 (14:53 +0800)]
common/plugin: correct output filename path

The around code use fname as output in some places.
Unify the file name variable to be fname.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agocommon/plugin: remove stale commented code
Changcheng Liu [Thu, 15 Oct 2020 06:52:38 +0000 (14:52 +0800)]
common/plugin: remove stale commented code

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agoMerge pull request #37609 from lixiaoy1/remove_writelog
Jason Dillaman [Thu, 15 Oct 2020 00:31:17 +0000 (20:31 -0400)]
Merge pull request #37609 from lixiaoy1/remove_writelog

rbd/cache: remove unnecessary WriteLogCache

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mahati Chamarthy <mahati.chamarthy@intel.com>
4 years agoMerge pull request #37625 from lixiaoy1/rwl_path
Jason Dillaman [Thu, 15 Oct 2020 00:29:41 +0000 (20:29 -0400)]
Merge pull request #37625 from lixiaoy1/rwl_path

rbd/cache: store full cache path to image metadata

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mahati Chamarthy <mahati.chamarthy@intel.com>
4 years agorgw/fifo: Use unique_ptr and explicit release for callbacks 37660/head
Adam C. Emerson [Tue, 13 Oct 2020 21:32:01 +0000 (17:32 -0400)]
rgw/fifo: Use unique_ptr and explicit release for callbacks

To simplify and clarify memory allocation in AIO cases.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
4 years agorgw/fifo: Catch two instances journaling a new part
Adam C. Emerson [Tue, 13 Oct 2020 21:05:58 +0000 (17:05 -0400)]
rgw/fifo: Catch two instances journaling a new part

If we see another part journaled, just run the journal ourselves.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
4 years agorgw/fifo: Add some error logging
Adam C. Emerson [Tue, 13 Oct 2020 19:25:53 +0000 (15:25 -0400)]
rgw/fifo: Add some error logging

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
4 years agorgw/fifo: Fix a few missed return value assignments
Adam C. Emerson [Tue, 13 Oct 2020 17:12:46 +0000 (13:12 -0400)]
rgw/fifo: Fix a few missed return value assignments

Slipped in when I converted from call-back based to sequential.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
4 years agocls/fifo: Switch use CLS_ERR for errors
Adam C. Emerson [Tue, 13 Oct 2020 15:56:04 +0000 (11:56 -0400)]
cls/fifo: Switch use CLS_ERR for errors

So things going wrong show up in the log by default. Also use
__PRETTY_FUNCTION__ instead of __func__ and print some more context.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
4 years agoMerge PR #34702 into master
Patrick Donnelly [Wed, 14 Oct 2020 18:11:15 +0000 (11:11 -0700)]
Merge PR #34702 into master

* refs/pull/34702/head:
doc: Make time-related osd default values in documentation big-endian.

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37587 from anthonyeleven/yet-more-doc-polishing
zdover23 [Wed, 14 Oct 2020 16:48:25 +0000 (02:48 +1000)]
Merge pull request #37587 from anthonyeleven/yet-more-doc-polishing

doc: clarity, detail, modernization, capitalization

Reviewed-by: Zac Dover <zac.dover@gmail.com>
4 years agoMerge pull request #37168 from ifed01/wip-ifed-fix-compress-csum
Kefu Chai [Wed, 14 Oct 2020 14:19:03 +0000 (22:19 +0800)]
Merge pull request #37168 from ifed01/wip-ifed-fix-compress-csum

os/bluestore: attach csum for compressed blobs

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>
4 years agoMerge pull request #37611 from tchaikov/wip-cmake-tox
Kefu Chai [Wed, 14 Oct 2020 14:02:36 +0000 (22:02 +0800)]
Merge pull request #37611 from tchaikov/wip-cmake-tox

cmake: do not always add py3 to TOX_ENVS

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
4 years agoMerge pull request #37594 from trociny/wip-rbd-quiesce-cancel
Jason Dillaman [Wed, 14 Oct 2020 13:59:58 +0000 (09:59 -0400)]
Merge pull request #37594 from trociny/wip-rbd-quiesce-cancel

librbd: fix race on watcher unregister

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #37650 from jschmid1/gs
Joshua Schmid [Wed, 14 Oct 2020 12:45:27 +0000 (14:45 +0200)]
Merge pull request #37650 from jschmid1/gs

mgr/cephadm: adapt <placement> usage string

4 years agomgr/dashboard: add an empty line to appease flake8 37611/head
Kefu Chai [Tue, 13 Oct 2020 08:38:55 +0000 (16:38 +0800)]
mgr/dashboard: add an empty line to appease flake8

silence the warnings like

./controllers/mgr_modules.py:38:5: E301 expected 1 blank line, found 0'
./controllers/user.py:69:5: E301 expected 1 blank line, found 0

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37394 from rosinL/cleanup-queue-option
Kefu Chai [Wed, 14 Oct 2020 08:08:04 +0000 (16:08 +0800)]
Merge pull request #37394 from rosinL/cleanup-queue-option

common/options: remove unavailable values of osd_op_queue

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37627 from changchengx/msg
Kefu Chai [Wed, 14 Oct 2020 08:05:51 +0000 (16:05 +0800)]
Merge pull request #37627 from changchengx/msg

msg: remove stale comment and unnecessary code

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37626 from tchaikov/wip-drop-std-iterator
Kefu Chai [Wed, 14 Oct 2020 08:04:14 +0000 (16:04 +0800)]
Merge pull request #37626 from tchaikov/wip-drop-std-iterator

include/interval_set: do not inherit from std::iterator

Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
4 years agoMerge pull request #37455 from smithfarm/wip-spec-file-cleanup
Kefu Chai [Wed, 14 Oct 2020 07:43:30 +0000 (15:43 +0800)]
Merge pull request #37455 from smithfarm/wip-spec-file-cleanup

rpm: three spec file cleanups

Reviewed-by: Tim Serong <tserong@suse.com>
4 years agopybind/rados: correct the declarations of C APIs 37633/head
Kefu Chai [Mon, 12 Oct 2020 07:38:48 +0000 (15:38 +0800)]
pybind/rados: correct the declarations of C APIs

so they are consistent with the ones declared in include/rados/librados.h

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agopybind/rados: add more type hintings
Kefu Chai [Mon, 12 Oct 2020 07:12:30 +0000 (15:12 +0800)]
pybind/rados: add more type hintings

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocmake: do not always add py3 to TOX_ENVS
Kefu Chai [Fri, 9 Oct 2020 05:55:39 +0000 (13:55 +0800)]
cmake: do not always add py3 to TOX_ENVS

before this change add_tox_test() always add "py3" to testenv, even the
caller specifies TOX_ENVS explicitly.

after this change, py3 is added only if the caller does not specify any
TOX_ENVS.

this change helps with the readability.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agopick_address: Warn and continue when you find at least 1 IPv4 or IPv6 address 36536/head
Matthew Oliver [Mon, 10 Aug 2020 04:46:21 +0000 (04:46 +0000)]
pick_address: Warn and continue when you find at least 1 IPv4 or IPv6 address

Currently if specify a single public or cluster network, yet have both
`ms bind ipv4` and `ms bind ipv6` set daemons crash when they can't find
both IPs from the same network:

    unable to find any IPv4 address in networks '2001:db8:11d::/120' interfaces ''

And rightly so, of course it can't find an IPv4 network in an IPv6
network.
This patch, adds a new helper method, networks_address_family_coverage,
that takes the list of networks and returns a bitmap of address families
supported.
We then check to see if we have enough networks defined and if you don't
it'll warn and then continue.

Also update the network-config-ref to mention having to define both
address family addresses for cluster and or public networks.

As well as a warning about `ms bind ipv4` being enabled by default which
is easy to miss, there by enabling dual stack when you may only be
expect single stack IPv6.

Thee is also a drive by to fix a `note` that wan't being displayed due
to missing RST syntax.

Signed-off-by: Matthew Oliver <moliver@suse.com>
Fixes: https://tracker.ceph.com/issues/46845
Fixes: https://tracker.ceph.com/issues/39711
4 years agoMerge PR #37583 into master
Patrick Donnelly [Tue, 13 Oct 2020 17:27:02 +0000 (10:27 -0700)]
Merge PR #37583 into master

* refs/pull/37583/head:
mgr/volumes/nfs: Fix wrong error message for pseudo path

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge PR #37585 into master
Patrick Donnelly [Tue, 13 Oct 2020 17:26:02 +0000 (10:26 -0700)]
Merge PR #37585 into master

* refs/pull/37585/head:
doc/cephfs/nfs: Remove outdated doc related to rook

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge pull request #37610 from anthonyeleven/doc-rados-troubleshooting
zdover23 [Tue, 13 Oct 2020 16:32:24 +0000 (02:32 +1000)]
Merge pull request #37610 from anthonyeleven/doc-rados-troubleshooting

doc/rados/troubleshooting: clarity and modernization

Reviewed-by: Zac Dover <zac.dover@gmail.com>
4 years agoMerge PR #36537 into master
Patrick Donnelly [Tue, 13 Oct 2020 16:29:04 +0000 (09:29 -0700)]
Merge PR #36537 into master

* refs/pull/36537/head:
qa/cephfs: update ephemeral pin tests
mds: distribute dirfrags for ephemeral distributed directory

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoqa/cephfs: update ephemeral pin tests 36537/head
Yan, Zheng [Wed, 12 Aug 2020 06:49:15 +0000 (14:49 +0800)]
qa/cephfs: update ephemeral pin tests

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
4 years agomds: distribute dirfrags for ephemeral distributed directory
Yan, Zheng [Fri, 7 Aug 2020 15:58:19 +0000 (23:58 +0800)]
mds: distribute dirfrags for ephemeral distributed directory

Instead of distribute individual dir inodes inside the ephemeral
distributed dir. Distributing dirfrags can limit number of subtrees
created by the ephemeral dist pin.

This patch also unifies codes that handle export pin and ephemeral pin.

Fixes: https://tracker.ceph.com/issues/46696
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
4 years agolibrbd: support preprocessing source object data prior to deep-copy 37444/head
Jason Dillaman [Mon, 5 Oct 2020 18:04:14 +0000 (14:04 -0400)]
librbd: support preprocessing source object data prior to deep-copy

Let object dispatch layers potentially mutate the data read from the
source image prior to issuing the actual deep-copy operations against
the destination image.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: continue to simplify deep-copy object copy write ops types
Jason Dillaman [Mon, 5 Oct 2020 14:19:51 +0000 (10:19 -0400)]
librbd: continue to simplify deep-copy object copy write ops types

Replace the custom WriteOp data structure and just re-use the new
io::SnapshotSparseBufferlist structure to record write and zero ops.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: simplify deep-copy object copy write ops types
Jason Dillaman [Mon, 5 Oct 2020 13:56:56 +0000 (09:56 -0400)]
librbd: simplify deep-copy object copy write ops types

The write-ops now only stores write vs zero ops and the type of
zero operation is delayed until the actual op is sent. This will
make the state machine compatible with the copyup process hook.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: support preprocessing parent data prior to copyup
Jason Dillaman [Thu, 24 Sep 2020 19:15:23 +0000 (15:15 -0400)]
librbd: support preprocessing parent data prior to copyup

Let object dispatch layers potentially mutate the copyup data read
from the parent prior to issuing the actual copyup operation. This
can allow for a layer like the crypto layer to re-encrypt the parent
image data using the child image's encryption keys, for example.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: new hook for pre-processing copyup data
Jason Dillaman [Wed, 23 Sep 2020 19:57:20 +0000 (15:57 -0400)]
librbd: new hook for pre-processing copyup data

This will permit the crypto layer to properly encrypt and potentially
align the sparse copyup data prior to it being written. It passes
potentially multiple sets of data in one pass to permit the deep-copy
state machine to utilize the same API and allow the crypto layer to
potentially handle layered alignment issues.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: rename SnapshotExtent to SparseExtent
Jason Dillaman [Wed, 30 Sep 2020 01:24:23 +0000 (21:24 -0400)]
librbd: rename SnapshotExtent to SparseExtent

The processing of copyup needs to be able to denote data extents that
are potentially zeroed or included in the associated bufferlist. By
renaming the type, it can be re-used for this second purpose.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: copyup state machine should always issue a sparse-read
Jason Dillaman [Tue, 29 Sep 2020 00:35:38 +0000 (20:35 -0400)]
librbd: copyup state machine should always issue a sparse-read

When reading from the parent, always keep the data in a sparse
extent-map format. The forthcoming copyup preprocessing hook will
want to pass a set of sparse image-extent data.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: switch remaining uses of ExtentMap to Extents
Jason Dillaman [Tue, 29 Sep 2020 00:04:48 +0000 (20:04 -0400)]
librbd: switch remaining uses of ExtentMap to Extents

The neorados API already requires the vector-based approach vs
the map-based approach. Now the remaining sparse-read functionality
has been switched to use the consistent approach.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: deep-copy should update object-map before writing to object
Jason Dillaman [Fri, 25 Sep 2020 14:40:32 +0000 (10:40 -0400)]
librbd: deep-copy should update object-map before writing to object

For the original use-case of RBD mirroring it was (maybe) more
acceptable to write to the object before updating the object map
because an interrupted sync will be retried. However, when using
the deep-copy object copy state machine as part of copyup, it's
more likely that the object-map has the potential to become
out-of-sync with reality if it's updated after the object is
written.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: pass write op object extents to copyup state machine
Jason Dillaman [Fri, 25 Sep 2020 13:16:48 +0000 (09:16 -0400)]
librbd: pass write op object extents to copyup state machine

It will use these extents in a later commit to potentially reduce the
parent image data that is processed for copyup portion of the write
request.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: copy-on-read should skip copyup if deep-copy invoked
Jason Dillaman [Tue, 22 Sep 2020 23:01:27 +0000 (19:01 -0400)]
librbd: copy-on-read should skip copyup if deep-copy invoked

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agotest/librbd: fix issue with mock test when copy-on-read is enabled
Jason Dillaman [Tue, 22 Sep 2020 20:17:35 +0000 (16:17 -0400)]
test/librbd: fix issue with mock test when copy-on-read is enabled

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agocommon: add interval_map initializer list constructor
Jason Dillaman [Wed, 30 Sep 2020 17:30:42 +0000 (13:30 -0400)]
common: add interval_map initializer list constructor

This simplifies unit test cases by allowing interval_maps to be
trivially constructed with pre-populated expectations.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agolibrbd: update AioCompletion return value before evaluating pending count 37645/head
Jason Dillaman [Tue, 13 Oct 2020 01:34:25 +0000 (21:34 -0400)]
librbd: update AioCompletion return value before evaluating pending count

If the pending count is decremented before the return value is updated,
there is a possibility of two ASIO threads concurrently decrementing the
pending count down from 2 -> 1 -> 0. In the second thread (the one that
performs the final decrement from 1 -> 0), it can finalize the completion
before the first thread has had a chance to update the return value.

Fixes: https://tracker.ceph.com/issues/47847
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agomgr/cephadm: adapt <placement> usage string 37650/head
Joshua Schmid [Tue, 13 Oct 2020 10:48:32 +0000 (12:48 +0200)]
mgr/cephadm: adapt <placement> usage string

Signed-off-by: Joshua Schmid <jschmid@suse.de>
4 years agoMerge pull request #35477 from yuvalif/add_lua_to_rgw
Yuval Lifshitz [Tue, 13 Oct 2020 09:42:48 +0000 (12:42 +0300)]
Merge pull request #35477 from yuvalif/add_lua_to_rgw

rgw/lua: embedding lua in rgw in s3 request context

4 years agoqa/cephtool: test 'mon stat' commands 37635/head
Joao Eduardo Luis [Tue, 13 Oct 2020 08:24:34 +0000 (08:24 +0000)]
qa/cephtool: test 'mon stat' commands

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agomon: have 'mon stat' output json as well
Joao Eduardo Luis [Mon, 12 Oct 2020 11:29:16 +0000 (11:29 +0000)]
mon: have 'mon stat' output json as well

Fixes: https://tracker.ceph.com/issues/46816
Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agoMerge pull request #37581 from dillaman/wip-librbd-exclusive-lock-shutdown
Mykola Golub [Tue, 13 Oct 2020 07:44:58 +0000 (10:44 +0300)]
Merge pull request #37581 from dillaman/wip-librbd-exclusive-lock-shutdown

librbd: avoid failing IO with -ESHUTDOWN when disabling exclusive-lock

Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agoMerge pull request #37613 from tchaikov/wip-cls-osd-cleanup
Kefu Chai [Tue, 13 Oct 2020 06:23:29 +0000 (14:23 +0800)]
Merge pull request #37613 from tchaikov/wip-cls-osd-cleanup

cls, osd: cleanups

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
4 years agoMerge pull request #37537 from yuvalif/missing_brackets_in_rgw_file
Yuval Lifshitz [Tue, 13 Oct 2020 05:06:31 +0000 (08:06 +0300)]
Merge pull request #37537 from yuvalif/missing_brackets_in_rgw_file

rgw/file: missing brackets around if statement

4 years agoMerge pull request #37538 from yuvalif/potential_crash_in_kafka
Yuval Lifshitz [Tue, 13 Oct 2020 05:04:18 +0000 (08:04 +0300)]
Merge pull request #37538 from yuvalif/potential_crash_in_kafka

fix potential crash in rgw_kafka

4 years agoMerge pull request #37599 from yuvalif/remove_doxyfile
Yuval Lifshitz [Tue, 13 Oct 2020 05:03:39 +0000 (08:03 +0300)]
Merge pull request #37599 from yuvalif/remove_doxyfile

cmake: remove Doxyfile as doxygen run via make

4 years agoMerge pull request #37534 from yuvalif/fix_ownership_in_role_applier
Yuval Lifshitz [Tue, 13 Oct 2020 05:02:40 +0000 (08:02 +0300)]
Merge pull request #37534 from yuvalif/fix_ownership_in_role_applier

 rgw/auth: fix copy&paste bug in RoleApplier::is_owner_of

4 years agotest: add test for setting ceph mirror virtual xattr 36603/head
Venky Shankar [Mon, 10 Aug 2020 13:21:42 +0000 (09:21 -0400)]
test: add test for setting ceph mirror virtual xattr

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agotests/pybind/cephfs: cleanup xattrs before starting tests
Venky Shankar [Fri, 9 Oct 2020 11:06:45 +0000 (07:06 -0400)]
tests/pybind/cephfs: cleanup xattrs before starting tests

Some xattr tests do not fully cleanup set xattrs. Subsequent
tests may expect xattrs to be absent during the test, such as
setting an xattr and then removing followed by checking if the
xattr list to be empty. This may fail if earlier tests do not
cleanup xattrs, especially for root.

So, cleanup xattrs on root before starting tests. Other directories
are removed anyway, so we do not have to bother about those.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agoclient: filter ceph.* xattrs from listing
Venky Shankar [Fri, 28 Aug 2020 10:49:24 +0000 (06:49 -0400)]
client: filter ceph.* xattrs from listing

Since xattr_map has entries for xattrs in ceph namespace.
Such xattrs are accessible via getxattr().

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agoclient: force an attr fetch for ceph xattrs
Venky Shankar [Fri, 28 Aug 2020 07:42:23 +0000 (03:42 -0400)]
client: force an attr fetch for ceph xattrs

Without this fetching a ceph.* xattr which was just set
returns -ENODATA.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agoclient: changes for ceph.mirror.info xattr
Venky Shankar [Wed, 26 Aug 2020 12:56:34 +0000 (08:56 -0400)]
client: changes for ceph.mirror.info xattr

Leverage the vxattr helper to handle this xattr request.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agomds: restrict setting/removing certain xattrs in ceph namespace
Venky Shankar [Tue, 25 Aug 2020 01:48:53 +0000 (21:48 -0400)]
mds: restrict setting/removing certain xattrs in ceph namespace

Since all ceph.* xattrs need not be virtual (stored in inode
structure), restrict certain xattrs (ceph.mirror.info) to be
persisted in xattr_map. Other ceph.* xattrs which do not pass
the virtual xattr check are rejected.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agomds: introduce ceph.mirror.info virtual xattr
Venky Shankar [Wed, 26 Aug 2020 12:55:51 +0000 (08:55 -0400)]
mds: introduce ceph.mirror.info virtual xattr

This is a compound xattr with the xattr value being fixed in
format. MDS stores this xattr as two (since the xattr value
right now just has two components or compounds) separate entries
in the xattr_map. This is done to avoid bloating the xattr value
if more "compounds" are added.

You may ask, why do it this way rather having the application
(cephfs-mirror daemon in this case) just set each xattr one
after the other? Well, we loose xattr consistency (from the
application point-of-view) -- an application crash (bug!) or
an ENOSPC in the server could leave M out of N xattrs (M < N)
on-disk.

With the compound xattr operation done on the server side,
journaling ensure that either all (N) xattrs are available or
none are available after recovering from a crash.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agomds: customize xattr handling using dispatch handlers
Venky Shankar [Tue, 25 Aug 2020 11:08:45 +0000 (07:08 -0400)]
mds: customize xattr handling using dispatch handlers

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agomds: introduce is_ceph_vxattr() helper
Venky Shankar [Tue, 25 Aug 2020 01:26:12 +0000 (21:26 -0400)]
mds: introduce is_ceph_vxattr() helper

Not all ceph.* xattrs are virtual -- virtual in the sense
that such xattrs have entries in the inode structure (inode_t)
rather than in xattr_map. There could be cases where an xattr
is in ceph namespace but does not necessarily need to be stored
for each inode -- so filter such xattrs individually rather than
treating all ceph.* xattrs as virtual.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agoMerge PR #29951 into master
Patrick Donnelly [Tue, 13 Oct 2020 01:50:33 +0000 (18:50 -0700)]
Merge PR #29951 into master

* refs/pull/29951/head:
test: add tests for validating MDS metrics via `perf stats` module
test: Filesystem class helpers to grow and shrink MDS cluster
mgr/stats: mds performance stats module
mds: support sending empty perf metrics to ceph-manager

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agomon/Monitor: define paxos_service with fixed array size 37315/head
Changcheng Liu [Tue, 13 Oct 2020 01:29:51 +0000 (09:29 +0800)]
mon/Monitor: define paxos_service with fixed array size

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agomon/mon_types.h: define paxos services indexes using enum
Changcheng Liu [Tue, 13 Oct 2020 01:27:40 +0000 (09:27 +0800)]
mon/mon_types.h: define paxos services indexes using enum

Note: It's not proper to use scoped enum type here since the
enum value will be used as container index.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agomon: remove unused function
Changcheng Liu [Tue, 13 Oct 2020 01:22:44 +0000 (09:22 +0800)]
mon: remove unused function

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
4 years agodoc: misc clarity and capitalization 37587/head
Anthony D'Atri [Wed, 7 Oct 2020 22:21:28 +0000 (15:21 -0700)]
doc: misc clarity and capitalization

Signed-off-by: Anthony D'Atri <anthony.datri@gmail.com>
4 years agoMerge pull request #37541 from anthonyeleven/osd-internals-tweaks
zdover23 [Mon, 12 Oct 2020 20:01:05 +0000 (06:01 +1000)]
Merge pull request #37541 from anthonyeleven/osd-internals-tweaks

doc/dev: doc/dev/osd_internals capitalization, formatting, clarity

Reviewed-by: Zac Dover <zac.dover@gmail.com>