]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agocmake,win32*.sh: Windows DLL support 38984/head
Lucian Petrut [Thu, 7 Jan 2021 13:14:00 +0000 (13:14 +0000)]
cmake,win32*.sh: Windows DLL support

At the moment, the Windows binaries can only be linked statically.
This is less than ideal since:

* the resulting binaries can be quite large, especially when
including debug symbols
* librados and librbd cannot be used directly by 3rd party apps
* the build duration is increased

In order to do a dynamic build, we'll:

* add an option to win32_build.sh
* fix link order
* dynamically link boost
* disable the "-pie" flag when using Mingw, which generates incorrect
  executable entry points
* by default, cmake generates import libs for executables. The issue
  is that for rados.exe, it generates librados.dll.a, thus overriding
  the librados.dll import library, which breaks the build process.
  We'll configure cmake to skip generating import libs for executables.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
4 years agoMerge PR #32027 into master
Jan Fajerski [Fri, 22 Jan 2021 10:35:18 +0000 (11:35 +0100)]
Merge PR #32027 into master

* refs/pull/32027/head:
librados: avoid symbol versioning on Windows

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
4 years agoMerge pull request #38978 from liewegas/cephadm-daemon-health
Sebastian Wagner [Fri, 22 Jan 2021 09:40:00 +0000 (10:40 +0100)]
Merge pull request #38978 from liewegas/cephadm-daemon-health

mgr/cephadm: raise HEALTH_WARN when cephadm daemon in 'error' state

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agoMerge pull request #38967 from liewegas/wip-cephadm-pacific
Sebastian Wagner [Fri, 22 Jan 2021 09:36:25 +0000 (10:36 +0100)]
Merge pull request #38967 from liewegas/wip-cephadm-pacific

cephadm: latest stable release is now pacific

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
4 years agoMerge pull request #38739 from jecluis/wip-cephadm-splits
Sebastian Wagner [Fri, 22 Jan 2021 09:35:19 +0000 (10:35 +0100)]
Merge pull request #38739 from jecluis/wip-cephadm-splits

cephadm: splits bootstrap function, add context, drop global variables

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agoMerge pull request #39010 from mdw-at-linuxbox/wip-master-barbicany2021
Casey Bodley [Thu, 21 Jan 2021 22:42:38 +0000 (17:42 -0500)]
Merge pull request #39010 from mdw-at-linuxbox/wip-master-barbicany2021

qa/tasks/barbican.py: fix year2021 problem

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #39008 from mdw-at-linuxbox/wip-master-vaultunzip
Casey Bodley [Thu, 21 Jan 2021 22:42:09 +0000 (17:42 -0500)]
Merge pull request #39008 from mdw-at-linuxbox/wip-master-vaultunzip

qa/tasks/vault.py: unzip: try harder to find a working unzip.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #38988 from orozery/librbd-crypto-empty-copyup
Jason Dillaman [Thu, 21 Jan 2021 20:07:01 +0000 (15:07 -0500)]
Merge pull request #38988 from orozery/librbd-crypto-empty-copyup

librbd: don't restart empty copyups in crypto layer

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #38985 from orozery/rbd-nbd-luks2-blksize
Jason Dillaman [Thu, 21 Jan 2021 20:06:20 +0000 (15:06 -0500)]
Merge pull request #38985 from orozery/rbd-nbd-luks2-blksize

tools/rbd-nbd: change block size to 4K for LUKS2 images

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #38983 from orozery/qa-qemu-rbd-encryption
Jason Dillaman [Thu, 21 Jan 2021 20:05:30 +0000 (15:05 -0500)]
Merge pull request #38983 from orozery/qa-qemu-rbd-encryption

qa/tasks/rbd: increase image size of encrypted disks

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoqa/tasks/barbican.py: fix year2021 problem 39010/head
Marcus Watts [Thu, 14 Jan 2021 20:41:49 +0000 (15:41 -0500)]
qa/tasks/barbican.py: fix year2021 problem

The expiration timestamp was hard-coded as
2020-12-31T19:14:44.180394
which is now in the past.  Instead, use a timestamp
90 minutes in the future.

Fixes: https://tracker.ceph.com/issues/48919
Signed-off-by: Marcus Watts <mwatts@redhat.com>
4 years agoqa/tasks/vault.py: unzip: try harder to find a working unzip. 39008/head
Marcus Watts [Wed, 13 Jan 2021 05:17:38 +0000 (00:17 -0500)]
qa/tasks/vault.py: unzip: try harder to find a working unzip.

The existing logic uses "python -m zipfile" to unzip files.
This will (most likely) fail on CentOS 8-Stream , where python
defaults to 'unset' (see man unversioned-python).

So: try harder: try unzip, python3, and python in that order,
to find something that can unzip files.

Fixes: https://tracker.ceph.com/issues/48921
Signed-off-by: Marcus Watts <mwatts@redhat.com>
4 years agoMerge pull request #38691 from soumyakoduri/lc_fixes
Harish Munjulur [Thu, 21 Jan 2021 17:25:06 +0000 (09:25 -0800)]
Merge pull request #38691 from soumyakoduri/lc_fixes

rgw/lc: Fix use-after-free in RGWLC::process

4 years agoMerge pull request #38465 from IlsooByun/fix_lc_infinite_loop
Harish Munjulur [Thu, 21 Jan 2021 17:24:51 +0000 (09:24 -0800)]
Merge pull request #38465 from IlsooByun/fix_lc_infinite_loop

rgw: lc: fix infinite loop in bucket_lc_prepare

4 years agoMerge pull request #36698 from vshankar/wip-cephfs-mirror-tests
Venky Shankar [Thu, 21 Jan 2021 04:16:51 +0000 (09:46 +0530)]
Merge pull request #36698 from vshankar/wip-cephfs-mirror-tests

cephfs-mirror: teuthology task and tests

4 years agoMerge pull request #35993 from vshankar/wip-fs-mirror-interface
Venky Shankar [Thu, 21 Jan 2021 04:15:41 +0000 (09:45 +0530)]
Merge pull request #35993 from vshankar/wip-fs-mirror-interface

pybind/mgr/mirroring: directory snapshot mirror support

4 years agoMerge pull request #38991 from cbodley/wip-rgw-perm-state-valgrind
Casey Bodley [Wed, 20 Jan 2021 22:05:30 +0000 (17:05 -0500)]
Merge pull request #38991 from cbodley/wip-rgw-perm-state-valgrind

rgw: fix reference to temporary in perm_state ctor

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #38817 from ideepika/fix-interactive-error
Sage Weil [Wed, 20 Jan 2021 21:21:15 +0000 (15:21 -0600)]
Merge pull request #38817 from ideepika/fix-interactive-error

qa/tasks/ceph: do not update info.yaml if ctx.archive is not set

4 years agoMerge pull request #38941 from sseshasa/wip-48906-async-rec-min-cost-fix
Neha Ojha [Wed, 20 Jan 2021 20:37:44 +0000 (12:37 -0800)]
Merge pull request #38941 from sseshasa/wip-48906-async-rec-min-cost-fix

osd: Remove override for osd_async_recovery_min_cost for mclock profiles

Reviewed-by: Sunny Kumar <sunkumar@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agorgw: avoid (rgw_file) illegal access to stack memory 38991/head
Matt Benjamin [Tue, 12 Jan 2021 22:13:28 +0000 (17:13 -0500)]
rgw: avoid (rgw_file) illegal access to stack memory

Fixes: https://tracker.ceph.com/issues/48941
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
4 years agoMerge pull request #38987 from cbodley/wip-qa-rgw-valgrind-supp-tls
Casey Bodley [Wed, 20 Jan 2021 18:22:56 +0000 (13:22 -0500)]
Merge pull request #38987 from cbodley/wip-qa-rgw-valgrind-supp-tls

valgrind: update suppression for _dl_allocate_tls

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agolibrbd: don't restart empty copyups in crypto layer 38988/head
Or Ozeri [Wed, 20 Jan 2021 16:43:47 +0000 (18:43 +0200)]
librbd: don't restart empty copyups in crypto layer

This commit fixes a bug where an empty parent copyup is restarted indefinitely.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
4 years agoMerge pull request #38966 from rzarzynski/wip-qa-rgw-no-valgrind-early-exit
Casey Bodley [Wed, 20 Jan 2021 16:08:38 +0000 (11:08 -0500)]
Merge pull request #38966 from rzarzynski/wip-qa-rgw-no-valgrind-early-exit

qa/task/rgw: instruct Valgrind to don't exit on first error.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agovalgrind: update suppression for _dl_allocate_tls 38987/head
Casey Bodley [Wed, 20 Jan 2021 14:59:03 +0000 (09:59 -0500)]
valgrind: update suppression for _dl_allocate_tls

in the rgw suite, there's an extra allocate_dtv() call in this stack.
add a ... to match it

  <stack>
    <frame>
      <ip>0x4C3321A</ip>
      <obj>/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>calloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.16.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>760</line>
    </frame>
    <frame>
      <ip>0x4012341</ip>
      <obj>/usr/lib64/ld-2.28.so</obj>
      <fn>allocate_dtv</fn>
    </frame>
    <frame>
      <ip>0x4012CD1</ip>
      <obj>/usr/lib64/ld-2.28.so</obj>
      <fn>_dl_allocate_tls</fn>
    </frame>
    <frame>
      <ip>0x101C7F32</ip>
      <obj>/usr/lib64/libpthread-2.28.so</obj>
      <fn>pthread_create@@GLIBC_2.2.5</fn>
    </frame>
    <frame>
      <ip>0x6F14E64</ip>
      <obj>/usr/lib64/ceph/libceph-common.so.2</obj>
      <fn>Thread::try_create(unsigned long)</fn>
    </frame>

Signed-off-by: Casey Bodley <cbodley@redhat.com>
4 years agocephadm: fix stuff 38739/head
Joao Eduardo Luis [Wed, 20 Jan 2021 12:46:52 +0000 (11:46 -0100)]
cephadm: fix stuff

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: annotate variable type for mypy
Joao Eduardo Luis [Sat, 16 Jan 2021 15:33:43 +0000 (14:33 -0100)]
cephadm: annotate variable type for mypy

mypy was complaining about the type of the variable being None, later on
on assignment with an int.

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm/test: support context class
Joao Eduardo Luis [Thu, 14 Jan 2021 15:35:33 +0000 (14:35 -0100)]
cephadm/test: support context class

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: have context handle config options
Joao Eduardo Luis [Fri, 15 Jan 2021 10:55:04 +0000 (09:55 -0100)]
cephadm: have context handle config options

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: drop ctx class from where we don't need it
Joao Eduardo Luis [Thu, 14 Jan 2021 15:34:55 +0000 (14:34 -0100)]
cephadm: drop ctx class from where we don't need it

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm/bootstrap: move mon net discovery to function
Joao Eduardo Luis [Thu, 31 Dec 2020 01:55:25 +0000 (01:55 +0000)]
cephadm/bootstrap: move mon net discovery to function

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: don't forget ipv6 behind
Joao Eduardo Luis [Thu, 31 Dec 2020 01:48:42 +0000 (01:48 +0000)]
cephadm: don't forget ipv6 behind

Fixes a bug introduced earlier in the patchset. It's just too hard to go
back and fix it up with the right commit.

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split-off config work on bootstrap
Joao Eduardo Luis [Thu, 31 Dec 2020 01:44:44 +0000 (01:44 +0000)]
cephadm: split-off config work on bootstrap

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split-off dashboard setup on bootstrap
Joao Eduardo Luis [Thu, 31 Dec 2020 01:28:05 +0000 (01:28 +0000)]
cephadm: split-off dashboard setup on bootstrap

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split-off ssh preparations on bootstrap
Joao Eduardo Luis [Thu, 31 Dec 2020 01:21:05 +0000 (01:21 +0000)]
cephadm: split-off ssh preparations on bootstrap

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split-off mgr creation
Joao Eduardo Luis [Thu, 31 Dec 2020 01:07:55 +0000 (01:07 +0000)]
cephadm: split-off mgr creation

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split mon prepare and create
Joao Eduardo Luis [Thu, 31 Dec 2020 01:05:48 +0000 (01:05 +0000)]
cephadm: split mon prepare and create

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: move configuration out of the way
Joao Eduardo Luis [Thu, 31 Dec 2020 00:41:48 +0000 (00:41 +0000)]
cephadm: move configuration out of the way

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm/bootstrap: spin-off waiting for mon
Joao Eduardo Luis [Wed, 30 Dec 2020 19:29:19 +0000 (19:29 +0000)]
cephadm/bootstrap: spin-off waiting for mon

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split some of bootstrap to other functions
Joao Eduardo Luis [Wed, 30 Dec 2020 19:19:03 +0000 (19:19 +0000)]
cephadm: split some of bootstrap to other functions

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: fix linting/types issues
Joao Eduardo Luis [Wed, 30 Dec 2020 13:23:32 +0000 (13:23 +0000)]
cephadm: fix linting/types issues

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: split main into an init function
Joao Eduardo Luis [Wed, 30 Dec 2020 10:22:30 +0000 (10:22 +0000)]
cephadm: split main into an init function

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agocephadm: introduce context, drop global variables
Joao Eduardo Luis [Tue, 29 Dec 2020 19:23:01 +0000 (19:23 +0000)]
cephadm: introduce context, drop global variables

Signed-off-by: Joao Eduardo Luis <joao@suse.com>
4 years agoqa/tasks/rbd: increase image size of encrypted disks 38983/head
Or Ozeri [Wed, 20 Jan 2021 10:59:06 +0000 (12:59 +0200)]
qa/tasks/rbd: increase image size of encrypted disks

This commit increases the rbd image sizes in used by qemu to support the storage requirements of the luks encryption header.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
4 years agotools/rbd-nbd: change block size to 4K for LUKS2 images 38985/head
Or Ozeri [Wed, 20 Jan 2021 13:36:10 +0000 (15:36 +0200)]
tools/rbd-nbd: change block size to 4K for LUKS2 images

This commit sets the NBD device block size to 4K for images encrypted using LUKS2 (whose sector size is by default 4K(.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
4 years agoMerge pull request #38945 from sebastian-philipp/qa-cephadm-smoke-yaml
Sebastian Wagner [Wed, 20 Jan 2021 11:48:50 +0000 (12:48 +0100)]
Merge pull request #38945 from sebastian-philipp/qa-cephadm-smoke-yaml

qa/cephadm: Add yaml output to smoke test

Reviewed-by: Michael Fritch <mfritch@suse.com>
4 years agoMerge pull request #38954 from sebastian-philipp/orchestrator-disallow-untyped
Sebastian Wagner [Wed, 20 Jan 2021 11:46:56 +0000 (12:46 +0100)]
Merge pull request #38954 from sebastian-philipp/orchestrator-disallow-untyped

mgr/orchestrator: disallow_untyped_defs = True

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
4 years agoMerge pull request #38946 from sebastian-philipp/cephadm-pyright-fix-node-exporter
Sebastian Wagner [Wed, 20 Jan 2021 11:45:01 +0000 (12:45 +0100)]
Merge pull request #38946 from sebastian-philipp/cephadm-pyright-fix-node-exporter

cephadm: Fix node-exporter deployment.

Reviewed-by: Daniel-Pivonka <dpivonka@redhat.com>
4 years agoMerge pull request #38968 from dillaman/wip-rbd-error
Mykola Golub [Wed, 20 Jan 2021 08:13:14 +0000 (10:13 +0200)]
Merge pull request #38968 from dillaman/wip-rbd-error

rbd: deprecation warning should be printed to stderr

Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agoMerge pull request #38934 from ifed01/wip-ifed-fix-48776
Neha Ojha [Wed, 20 Jan 2021 01:55:30 +0000 (17:55 -0800)]
Merge pull request #38934 from ifed01/wip-ifed-fix-48776

os/bluestore: fix deferred_queue locking

Reviewed-by: Jianpeng Ma <jianpeng.ma@intel.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #38959 from badone/wip-valgrind-tracker-48918
Neha Ojha [Tue, 19 Jan 2021 23:24:29 +0000 (15:24 -0800)]
Merge pull request #38959 from badone/wip-valgrind-tracker-48918

osd: initialise m_interval_start

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agomgr/cephadm: raise HEALTH_WARN when cephadm daemon in 'error' state 38978/head
Sage Weil [Tue, 19 Jan 2021 22:49:08 +0000 (16:49 -0600)]
mgr/cephadm: raise HEALTH_WARN when cephadm daemon in 'error' state

If cephadm daemons are not happy we should raise a warning.  Aside from
being an important part of the user experience, this will also help us
catch teuthology test errors.

Fixes: https://tracker.ceph.com/issues/45628
Signed-off-by: Sage Weil <sage@newdream.net>
4 years agoMerge pull request #38944 from orozery/qa-qemu-rbd-encryption
Jason Dillaman [Tue, 19 Jan 2021 22:34:26 +0000 (17:34 -0500)]
Merge pull request #38944 from orozery/qa-qemu-rbd-encryption

qa/tasks/rbd: test qemu on top of rbd encryption

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agomgr/cephadm: fix host maintenance health check update
Sage Weil [Tue, 19 Jan 2021 22:31:25 +0000 (16:31 -0600)]
mgr/cephadm: fix host maintenance health check update

We need to update the self.health_checks dict and use that or else we
will clobber any other exising checks.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agoMerge pull request #38628 from ceph/wip-release-html
David Galloway [Tue, 19 Jan 2021 20:40:05 +0000 (15:40 -0500)]
Merge pull request #38628 from ceph/wip-release-html

script/ceph-release-notes: --html flag to output PRs in HTML

4 years ago:qa/tasks/rbd: test qemu on top of rbd encryption 38944/head
Or Ozeri [Thu, 14 Jan 2021 15:03:42 +0000 (17:03 +0200)]
:qa/tasks/rbd: test qemu on top of rbd encryption

This commit adds new qemu xfstests workloads that run on top of librbd luks1/luks2 encryption.
This is currently done via nbd, instead of the qemu rbd driver.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
4 years agorbd: deprecation warning should be printed to stderr 38968/head
Jason Dillaman [Tue, 19 Jan 2021 16:46:38 +0000 (11:46 -0500)]
rbd: deprecation warning should be printed to stderr

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
4 years agocephadm: latest stable release is now pacific 38967/head
Sage Weil [Tue, 19 Jan 2021 16:12:58 +0000 (10:12 -0600)]
cephadm: latest stable release is now pacific

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agoqa/task/rgw: instruct Valgrind to don't exit on first error. 38966/head
Radoslaw Zarzynski [Tue, 19 Jan 2021 14:23:56 +0000 (15:23 +0100)]
qa/task/rgw: instruct Valgrind to don't exit on first error.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agomgr/orchestrator: ignore Liskov substitution principle violation 38954/head
Sebastian Wagner [Mon, 18 Jan 2021 15:27:18 +0000 (16:27 +0100)]
mgr/orchestrator: ignore Liskov substitution principle violation

Right now, we're violating the Liskov substitution principle by deriving from `Orchestrator` but `process` takes a sub class of `Completion`:
See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides

The idea is to make Orchestrator a type constructor with `CompletionT` as argument, but this is not supported by mypy: https://github.com/python/typing/issues/548

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agomgr/orchestrator: disallow_untyped_defs = True
Sebastian Wagner [Mon, 18 Jan 2021 15:02:38 +0000 (16:02 +0100)]
mgr/orchestrator: disallow_untyped_defs = True

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agotest: cephfs-mirror teuthology task and test yamls 36698/head
Venky Shankar [Tue, 4 Aug 2020 09:05:51 +0000 (05:05 -0400)]
test: cephfs-mirror teuthology task and test yamls

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agotest: add tests for mirroring module w/ daemon verification
Venky Shankar [Tue, 18 Aug 2020 09:33:33 +0000 (05:33 -0400)]
test: add tests for mirroring module w/ daemon verification

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agotest: optionally create a backup filesystem on startup
Venky Shankar [Tue, 18 Aug 2020 09:32:38 +0000 (05:32 -0400)]
test: optionally create a backup filesystem on startup

Also filter out client-id's starting with "mirror" when
cleaning leftover auth-ids since teuthology would be
configured to create client.mirror and client.mirror_remote
clients before executing mirroring tests.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agopybind/mgr/mirroring: interface to mirror CephFS directory snapshots 35993/head
Venky Shankar [Thu, 9 Jul 2020 10:43:47 +0000 (06:43 -0400)]
pybind/mgr/mirroring: interface to mirror CephFS directory snapshots

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agopybind/mgr/mgr_util: make RTimer calss reusable
Venky Shankar [Thu, 9 Jul 2020 10:43:04 +0000 (06:43 -0400)]
pybind/mgr/mgr_util: make RTimer calss reusable

Signed-off-by: Venky Shankar <vshankar@redhat.com>
4 years agoosd: initialise m_interval_start 38959/head
Brad Hubbard [Tue, 19 Jan 2021 02:11:45 +0000 (12:11 +1000)]
osd: initialise m_interval_start

Fixes: https://tracker.ceph.com/issues/48918
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
4 years agoMerge pull request #37925 from liu-chunmei/seastore_omap_tree
Kefu Chai [Tue, 19 Jan 2021 04:23:18 +0000 (12:23 +0800)]
Merge pull request #37925 from liu-chunmei/seastore_omap_tree

crimson/seastore: add omap tree implementation

Reviewed-by: Samuel Just <sjust@redhat.com>
4 years agoMerge pull request #38890 from cbodley/wip-qa-rgw-https-clients
Casey Bodley [Mon, 18 Jan 2021 20:02:10 +0000 (15:02 -0500)]
Merge pull request #38890 from cbodley/wip-qa-rgw-https-clients

qa/rgw: don't add a certificate for nonexistent rgw.client.1

Reviewed-by: Ali Maredia <amaredia@redhat.com>
4 years agoMerge pull request #38898 from pkulijiawei/bug-48866
Jason Dillaman [Mon, 18 Jan 2021 18:01:03 +0000 (13:01 -0500)]
Merge pull request #38898 from pkulijiawei/bug-48866

librbd: remove the first if  at api::group::list

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #38904 from sebastian-philipp/cephadm-sysctl-silent
Sebastian Wagner [Mon, 18 Jan 2021 16:43:44 +0000 (17:43 +0100)]
Merge pull request #38904 from sebastian-philipp/cephadm-sysctl-silent

cephadm: Don't make sysctl spam the log file

Reviewed-by: Michael Fritch <mfritch@suse.com>
4 years agoMerge pull request #38910 from batrick/pr38568-fix
Sebastian Wagner [Mon, 18 Jan 2021 16:42:13 +0000 (17:42 +0100)]
Merge pull request #38910 from batrick/pr38568-fix

cephadm: fix rgw osd cap tag

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #38918 from adk3798/ha-rgw-fix
Sebastian Wagner [Mon, 18 Jan 2021 16:37:45 +0000 (17:37 +0100)]
Merge pull request #38918 from adk3798/ha-rgw-fix

mgr/cephadm: fix ha-rgw removal

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agoosd: Remove override for osd_async_recovery_min_cost for mclock profiles 38941/head
Sridhar Seshasayee [Mon, 18 Jan 2021 08:34:46 +0000 (14:04 +0530)]
osd: Remove override for osd_async_recovery_min_cost for mclock profiles

Overriding osd_async_recovery_min_cost as part of enabling a built-in
mclock profile has the undesirable side effect of peers not choosing
the correct async recovery targets if osds are using mixed schedulers
(this could happen during upgrades or if "debug_random" is set for
osd_op_queue config option). Due to the above, osds get into a
"choose_acting" loop during peering.

The solution is to remove the override of osd_async_recovery_min_cost.

Fixes: https://tracker.ceph.com/issues/48906
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
4 years agocephadm: Fix node-exporter deployment. 38946/head
Sebastian Wagner [Mon, 18 Jan 2021 11:33:36 +0000 (12:33 +0100)]
cephadm: Fix node-exporter deployment.

Fixes: 2ce828d5f3682d3eee61e4a4a07a9eedb6a3d04e
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agoqa/cephadm: Add yaml output to smoke test 38945/head
Sebastian Wagner [Mon, 18 Jan 2021 11:27:14 +0000 (12:27 +0100)]
qa/cephadm: Add yaml output to smoke test

this will provide a more detailed output, like

```yaml
...snip...
service_type: node-exporter
service_name: node-exporter
placement:
  host_pattern: '*'
status:
  created: '2021-01-18T11:21:56.024810Z'
  last_refresh: '2021-01-18T11:23:24.477672Z'
  running: 0
  size: 1
events:
- "2021-01-18T11:23:09.602644Z service:node-exporter [ERROR] \"Failed while placing\
  \ node-exporter.ubuntuon ubuntu: cephadm exited with an error code: 1, stderr:Deploy\
  \ daemon node-exporter.ubuntu ...\nVerifying port 9100 ...\nTraceback (most recent\
  \ call last):\n  File \"<stdin>\", line 7274, in <module>\n  File \"<stdin>\", line\
  \ 1563, in _default_image\n  File \"<stdin>\", line 3698, in command_deploy\n  File\
  \ \"<stdin>\", line 2338, in deploy_daemon\n  File \"<stdin>\", line 1961, in create_daemon_dirs\n\
  AssertionError\""
...snip...
```

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
4 years agoMerge pull request #38507 from sebastian-philipp/mypy-mgr_util
Sebastian Wagner [Mon, 18 Jan 2021 11:00:08 +0000 (12:00 +0100)]
Merge pull request #38507 from sebastian-philipp/mypy-mgr_util

pybind/mgr: disallow_untyped_defs=True for mgr_util

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
Reviewed-by: Patrick Seidensal <pseidensal@suse.com>
4 years agorgw/lc: Fix use-after-free in RGWLC::process 38691/head
Soumya Koduri [Tue, 22 Dec 2020 17:27:52 +0000 (22:57 +0530)]
rgw/lc: Fix use-after-free in RGWLC::process

Fixed use-after-free issue with 'rgw::sal::LCSerializer lock'
in RGWLC::process.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
4 years agoMerge pull request #38920 from sunnyku/wip-ceph-mclock-op
Neha Ojha [Sun, 17 Jan 2021 02:24:13 +0000 (18:24 -0800)]
Merge pull request #38920 from sunnyku/wip-ceph-mclock-op

osd: handle ceph specific config changes for the mclock scheduler

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Sridhar Seshasayee <sseshasa@redhat.com>
4 years agoMerge pull request #38675 from sseshasa/wip-dmclock-config-sets
Neha Ojha [Sun, 17 Jan 2021 02:23:25 +0000 (18:23 -0800)]
Merge pull request #38675 from sseshasa/wip-dmclock-config-sets

osd: Add mclock config sets that implement built-in and custom profiles

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Sunny Kumar <sunkumar@redhat.com>
4 years agoMerge pull request #38933 from wjwithagen/wjw-fix-QCOW
Jason Dillaman [Sat, 16 Jan 2021 22:04:46 +0000 (17:04 -0500)]
Merge pull request #38933 from wjwithagen/wjw-fix-QCOW

librbd: remove inclusion of endian.h

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoosd: Set recovery specific Ceph options for mclock profiles to work. 38675/head
Sridhar Seshasayee [Thu, 14 Jan 2021 13:06:04 +0000 (18:36 +0530)]
osd: Set recovery specific Ceph options for mclock profiles to work.

Set and disable relevant recovery specific Ceph options for mclock
profiles to work as expected. Broadly,
 - Set low value for recovery min cost
 - High values for max active recoveries and max backfills
 - Disable recovery sleep{_hdd, _ssd, _hybrid}

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
4 years agoosd: Handle configuration changes to mclock config options
Sridhar Seshasayee [Tue, 12 Jan 2021 11:32:37 +0000 (17:02 +0530)]
osd: Handle configuration changes to mclock config options

Handle configuration changes to the mclock cost per io, the max
capacity options and the mclock profile. Handle the case where the
profile is changed from a built-in profile to the custom profile.

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
4 years agoosd: Add mclock profile infrastructure and implement mclock profiles
Sridhar Seshasayee [Mon, 7 Dec 2020 11:09:57 +0000 (16:39 +0530)]
osd: Add mclock profile infrastructure and implement mclock profiles

Define config options to specify the cost per io for an osd (hdd & ssd).
 - osd_mclock_cost_per_io_msec
 - osd_mclock_cost_per_io_msec_hdd
 - osd_mclock_cost_per_io_msec_ssd

Define config options to set max osd capacity (hdd & ssd) to be allocated
between clients of dmclock namely,
 - osd_mclock_max_capacity_iops
 - osd_mclock_max_capacity_iops_hdd
 - osd_mclock_max_capacity_iops_ssd

Define config option "osd_mclock_profile" to specify the built-in profile
to enable.

Also, Set the number of op shards being used in the osd within the mclock
scheduler as well. This is necessary to calculate the per shard limits
within the mclock scheduler.

With the above information, enable the specified mclock profile by
calling the appropriate method to set the profile specific mclock
parameters and Ceph options.

Prior to enqueuing an op, the scheduler performs a calculation to scale
up or down the cost associated for the OpSchedulerItem. This calculation
is done based on the existing item cost, the max osd capacity provided
and an additional cost factor based on underlying device type(hdd/ssd).

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
4 years agoosd: handle ceph specific config changes for the mclock scheduler 38920/head
Sunny Kumar [Fri, 15 Jan 2021 02:53:05 +0000 (02:53 +0000)]
osd: handle ceph specific config changes for the mclock scheduler

The below ceph parameters are set automatically
while enabling the mclock scheduler with a built-in profile.
The user in this case will not be able to modify these
ceph specific config options during runtime.

  a. osd_async_recovery_min_cost
  b. osd_recovery_max_active{_hdd,_ssd}
  c. osd_max_backfills
  d. osd_recovery_sleep{_hdd,_ssd,_hybrid}

If the custom profile is enabled for the mclock scheduler,
the user can modify these parameters.

Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
4 years agoMerge PR #37297 into master
Patrick Donnelly [Sat, 16 Jan 2021 18:40:51 +0000 (10:40 -0800)]
Merge PR #37297 into master

* refs/pull/37297/head:
qa: add new client tests
test: add client tests
client: wire up alternate_name
mds: fix alternate_name durability
mds: add alternate_name feature support for dentries
mds: add static encode/decode helpers for remote in CDentry
mds: add "fscrypt" flag support for inode_t
mds: add new CDentry tags support
include: cleanup filepath cons
mds: add comment on linkage durability
client: constify some RWRef methods
common: add strescape helper

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoos/bluestore: fix deferred_queue locking 38934/head
Igor Fedotov [Sat, 16 Jan 2021 16:54:52 +0000 (19:54 +0300)]
os/bluestore: fix deferred_queue locking

https://github.com/ceph/ceph/pull/30027 introduced a gap in osr
protection (in _deferred_queue()) which could cause improper deferred_pending value while
processing osr from _deferred_aio_finish().
As a result both segmentation fault in _deferred_aio_finish() or deadlock could occur.

Fixes: https://tracker.ceph.com/issues/48776
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
4 years agolibrbd: remove inclusion of endian.h 38933/head
Willem Jan Withagen [Sat, 16 Jan 2021 13:33:16 +0000 (14:33 +0100)]
librbd: remove inclusion of endian.h

The file is not available on FreeBSD.

Fixes: https://github.com/ceph/ceph/pull/38862
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
4 years agoMerge pull request #38880 from xxhdx1985126/wip-crimson-bug-fix
Kefu Chai [Sat, 16 Jan 2021 06:57:47 +0000 (14:57 +0800)]
Merge pull request #38880 from xxhdx1985126/wip-crimson-bug-fix

crimson/osd: make PGRecovery::start_primary_recovery_ops take objs recovered by UrgentRecovery into account

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #38245 from batrick/ceph-status-pg-state-sort
Kefu Chai [Sat, 16 Jan 2021 04:20:15 +0000 (12:20 +0800)]
Merge pull request #38245 from batrick/ceph-status-pg-state-sort

osd: use more efficient CachedStackStringStream

Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #37391 from aclamk/wip-kv-onode-cache
Neha Ojha [Sat, 16 Jan 2021 02:36:47 +0000 (18:36 -0800)]
Merge pull request #37391 from aclamk/wip-kv-onode-cache

Add ability to control rocksdb block cache

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #38925 from thomasgoirand/master
Neha Ojha [Sat, 16 Jan 2021 01:40:55 +0000 (17:40 -0800)]
Merge pull request #38925 from thomasgoirand/master

common/ipaddr: Allow binding on lo

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoqa: add new client tests 37297/head
Patrick Donnelly [Fri, 15 Jan 2021 04:17:42 +0000 (20:17 -0800)]
qa: add new client tests

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agotest: add client tests
Patrick Donnelly [Mon, 11 Jan 2021 21:39:42 +0000 (13:39 -0800)]
test: add client tests

For alternate_name, so far.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoclient: wire up alternate_name
Patrick Donnelly [Mon, 11 Jan 2021 21:39:27 +0000 (13:39 -0800)]
client: wire up alternate_name

Here we're exposing a public Client::walk (aka path_walk) so that the
user can inspect dentries (not something normally possible in POSIX).
We're going to skip exposing such an interface in libcephfs since
there's no reason to do that (who would use it?) except for testing.
Instead, a follow-up PR will add Client tests (for the first time, yay!)
that will exercise this code.

Also, ideally we'd also expose alternate_name via readdir results but
that is a bit more complicated since dirents do not normally refer to
external memory. So, just rely on Client::walk for testing for now.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agomds: fix alternate_name durability
Patrick Donnelly [Fri, 15 Jan 2021 03:55:43 +0000 (19:55 -0800)]
mds: fix alternate_name durability

This is a collection of fixes to Xiubo's prior work. Namely:

- Add new mds_alternate_name_max option to limit the size of
  alternate_name. Otherwise a Client could trick the MDS into creating
  an alternate_name of any size!

- Clean up how alternate_name is assigned to CDentry. In the general
  case, this should be assigned as part of creating the dentry. We want
  this value to be immutable for the life of the dentry. Even for the
  very special case of rename(2) where the destination dentry already
  exists.  We explicitly check (after discussion with Jeff) that the
  target dentry alternate_name already matches what the rename RPC is
  giving.

- The MDS is now properly journaling the alternate_name.

- The MDS rejoin phase is properly transmitting each dentry's
  alternate_name. I've discovered that this MMDSCacheRejoin message
  actually wasn't versioned which I've raised in a tracker [1]. In the
  mean time, we'll just bump CEPH_MDS_PROTOCOL as usual.

[1] https://tracker.ceph.com/issues/48886

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agomds: add alternate_name feature support for dentries
Xiubo Li [Mon, 21 Sep 2020 04:55:31 +0000 (12:55 +0800)]
mds: add alternate_name feature support for dentries

This will support the "alternate_name" filename support, and will save
an alternate name for each dentry. This alternate name is not used in
path lookup or for any other usual file system purpose. The name is
simply an added blob of metadata on the dentry that is distributed to
clients so that "long" file names may be supported for clients which
require them. In the case of an fscrypt enhanced kernel mount driver,
the long name may be the cyphertext (exceeding FILENAME_MAX) of a long
file name.

Because this affects only files with long file names, the use of this
feature should be rare but could be common for some unusual
applications.

The client mount should check the CEPHFS_FEATURE_ALTERNATE_NAME feature
bit first to check whether the MDS has support for this feature or not.
The alternate_name is transmitted as part of the message payload in
MClientRequest when setting the alternate_name. The LeaseStat structure
in MClientReply contains the alternate_name.

When executing a metadata mutation RPC, the client will set the
alternate_name (if it exists) as part of the operation. The MDS will
pick that up and set it on the new or mutated dentry.

Fixes: https://tracker.ceph.com/issues/47162
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agomds: add static encode/decode helpers for remote in CDentry
Xiubo Li [Fri, 20 Nov 2020 02:02:42 +0000 (10:02 +0800)]
mds: add static encode/decode helpers for remote in CDentry

This will unify all the same work in different places.

Fixes: https://tracker.ceph.com/issues/47162
Signed-off-by: Xiubo Li <xiubli@redhat.com>
4 years agomds: add "fscrypt" flag support for inode_t
Xiubo Li [Sun, 27 Sep 2020 03:53:55 +0000 (11:53 +0800)]
mds: add "fscrypt" flag support for inode_t

If the client has set the "encryption.ctx" attribute, the MDS side
will set the "fscrypt" flag to truth, false as default.

The clients could use this flag to get to know whether the current
inodes are under enscrypted or not.

Fixes: https://tracker.ceph.com/issues/47162
Signed-off-by: Xiubo Li <xiubli@redhat.com>
4 years agomds: add new CDentry tags support
Xiubo Li [Wed, 23 Sep 2020 02:54:34 +0000 (10:54 +0800)]
mds: add new CDentry tags support

This will add new tag 'i' for inode and new tag 'l' for remote link
for the CDentry. And at the same time will add one proper dentry
version, which will be helpful to add new features/members in future
for the CDentry.

Fixes: https://tracker.ceph.com/issues/47162
Signed-off-by: Xiubo Li <xiubli@redhat.com>
4 years agoinclude: cleanup filepath cons
Patrick Donnelly [Tue, 12 Jan 2021 03:15:06 +0000 (19:15 -0800)]
include: cleanup filepath cons

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>