]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agocrimson/os/alienstore: create tp in AlienStore::start()
Kefu Chai [Sat, 29 May 2021 08:03:50 +0000 (16:03 +0800)]
crimson/os/alienstore: create tp in AlienStore::start()

thread pool is not needed until AlienStore::start(). with this change,
we are able to tell if the AlienStore is actually started or not in
AlienStore::stop().

as seastar::sharded<Service> start a service in two phases:

1. construct the shard instances
2. actually start them

and it stops a service in a single shot, which both stops the services
and destructs the service instance(s).

so we have to implement a proper stop() method for services whose
start() might not be called after its instance is created by
seastar::sharded<Service>::start() in case of error handling or if
we just don't want to call start().

to ensure we can skip the steps to clean up the stuff created by
start(), we need to have a flag in the sharded service, because
AlienStore is a member variable of OSD, and when we do mkfs, AlienStore
is not start()'ed, and as explained above, we have to call OSD::stop()
to ensure OSD instance is destructed properly. but OSD::stop()
calls store->umount() and store->stop() unconditionally. these methods
in AlienStore rely on a functional thread pool.

fortunately, we don't need to call these methods if the store is never
mounted or started. in a case of failed "mkfs", store is not mounted at
all but the store and osd instances are created.

so, in this change, thread pool is created in AlienStore::start(), and
we will use it to tell if AlienStore is started or not in the following
change which makes the related method no-op if AlienStore is not started
yet.

also, postpone the creation of `store` until in AlienStore::start(), so
we don't need to destroy it in the dtor of AlienStore. otherwise,
BlueStore::~BlueStore() would need to reference resources which are only
available in alien threads, but when OSD::~OSD() is called, we are in
seastar's reactor.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd/main: always stop osd as long as it started
Kefu Chai [Sat, 29 May 2021 07:08:18 +0000 (15:08 +0800)]
crimson/osd/main: always stop osd as long as it started

otherwise the sharded_service's dtor complains if we destruct it without
stopping it first, like:

FATAL: startup failed: std::system_error (error crimson::net:3, negotiation failure)
crimson-osd: ../src/seastar/include/seastar/core/sharded.hh:523: seastar::sharded<T>::~sharded() [with Service = crimson::osd::OSD]: Assertion `_instances.empty()' failed.
Aborting on shard 0.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd/main: do cleanup using defer()
Kefu Chai [Sat, 29 May 2021 07:03:01 +0000 (15:03 +0800)]
crimson/osd/main: do cleanup using defer()

since we do the startup in a seastar thread, we have the luxury of doing
cleanup using the RAII machinery.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd/main: catch exception thrown in the async() call
Kefu Chai [Sat, 29 May 2021 06:51:09 +0000 (14:51 +0800)]
crimson/osd/main: catch exception thrown in the async() call

* use seastar::app_template::run() instead of
  seastar::app_template::run_deprecated() for returning int,
  instead of returning `void`. so the application can return
  int explicitly in the continuation passed to run(). more
  readable this way.
* wrap the all the block in run() in a giant try-catch block,
  so the exceptions thrown by the startup code can be captured
  and handled.
* do not capture the exceptions individually, in the try-catch
  block anymore. the outer catch block takes care of them.

this change improves the error handling when crimson-osd launches.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd/main: handle and rethrow exception in fetch_config()
Kefu Chai [Sat, 29 May 2021 06:48:11 +0000 (14:48 +0800)]
crimson/osd/main: handle and rethrow exception in fetch_config()

print more verbose error message when monc fails to connect to moitor.
for better user experience.

also, unregister all dispatchers by calling msgr->stop() before calling
monc.stop() to ensure the messenger can be shutdown gracefully.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agotest/crimson/test_messenger: add editor variables in header
Kefu Chai [Sat, 29 May 2021 05:45:41 +0000 (13:45 +0800)]
test/crimson/test_messenger: add editor variables in header

to help emacs and vim to format the code better.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd/main: do cleanup using defer() in fetch_config()
Kefu Chai [Sat, 29 May 2021 05:44:29 +0000 (13:44 +0800)]
crimson/osd/main: do cleanup using defer() in fetch_config()

so we can stop the started services even if some of the step(s) throw or
fail.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agovstart.sh: remove unused variable
Kefu Chai [Sat, 29 May 2021 03:52:45 +0000 (11:52 +0800)]
vstart.sh: remove unused variable

osdmap_fn is not used after being initialized, so drop it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41278 from sebastian-philipp/mgr-cephadm-set-user-no-hosts
Kefu Chai [Sat, 29 May 2021 02:42:14 +0000 (10:42 +0800)]
Merge pull request #41278 from sebastian-philipp/mgr-cephadm-set-user-no-hosts

mgr/cephadm: Don't call _check_host without hosts

Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
Reviewed-by: Adam King <adking@redhat.com>
4 years agoMerge pull request #41520 from tchaikov/wip-osd-unique-ptr
Kefu Chai [Sat, 29 May 2021 02:37:31 +0000 (10:37 +0800)]
Merge pull request #41520 from tchaikov/wip-osd-unique-ptr

os: let ObjectStore::create() return unique_ptr<>

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agoMerge pull request #41573 from tchaikov/wip-allocat-ctor
Kefu Chai [Sat, 29 May 2021 02:36:43 +0000 (10:36 +0800)]
Merge pull request #41573 from tchaikov/wip-allocat-ctor

os/bluestore: pass string_view to ctor of Allocator

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
4 years agoMerge pull request #41582 from cyx1231st/wip-seastore-swap-read-extent
Kefu Chai [Fri, 28 May 2021 07:35:01 +0000 (15:35 +0800)]
Merge pull request #41582 from cyx1231st/wip-seastore-swap-read-extent

crimson/seastore: introduce and adopt LBAManager::get_mapping(t, offset)

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/seastore: adopt get_mapping(t, offset) interface 41582/head
Yingxin Cheng [Thu, 27 May 2021 15:33:25 +0000 (23:33 +0800)]
crimson/seastore: adopt get_mapping(t, offset) interface

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 years agocrimson/seastore: implement and test get_mapping(t, laddr)
Yingxin Cheng [Thu, 27 May 2021 08:48:47 +0000 (16:48 +0800)]
crimson/seastore: implement and test get_mapping(t, laddr)

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 years agocrimson/seastore: add stub to introduce get_mapping() without length
Yingxin Cheng [Thu, 27 May 2021 07:02:15 +0000 (15:02 +0800)]
crimson/seastore: add stub to introduce get_mapping() without length

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 years agoMerge pull request #41578 from rzarzynski/wip-crimson-monc-auth-req
Kefu Chai [Fri, 28 May 2021 00:09:07 +0000 (08:09 +0800)]
Merge pull request #41578 from rzarzynski/wip-crimson-monc-auth-req

crimson/monc: handle_auth_request() doesn't depend on active_con.

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41544 from tchaikov/wip-doc-confval
Kefu Chai [Thu, 27 May 2021 23:59:34 +0000 (07:59 +0800)]
Merge pull request #41544 from tchaikov/wip-doc-confval

doc/mgr: use confval directive to define options

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agodoc/mgr: use confval directive to define options 41544/head
Kefu Chai [Wed, 26 May 2021 04:00:57 +0000 (12:00 +0800)]
doc/mgr: use confval directive to define options

less repeating this way

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41540 from ceph/wip-15213
Yuri Weinstein [Thu, 27 May 2021 23:40:41 +0000 (16:40 -0700)]
Merge pull request #41540 from ceph/wip-15213

doc: 15.2.13 Release Notes

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge PR #41483 into master
Sage Weil [Thu, 27 May 2021 23:14:53 +0000 (19:14 -0400)]
Merge PR #41483 into master

* refs/pull/41483/head:
cephadm: stop passing --no-hosts to podman
mgr/nfs: use host.addr for backend IP where possible
mgr/cephadm: convert host addr if non-IP to IP
mgr/dashboard,prometheus: new method of getting mgr IP
doc/cephadm: remove any reference to the use of DNS or /etc/hosts
mgr/cephadm: use known host addr
mgr/cephadm: resolve IP at 'orch host add' time

Reviewed-by: Sebastian Wagner <swagner@suse.com>
4 years agoMerge pull request #41561 from zdover23/wip-doc-cephadm-s-mgmt-service-status-improve...
zdover23 [Thu, 27 May 2021 21:41:40 +0000 (07:41 +1000)]
Merge pull request #41561 from zdover23/wip-doc-cephadm-s-mgmt-service-status-improvement-2021-05-26

doc/cephadm: enrich "service status"

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
4 years agocephadm: stop passing --no-hosts to podman 41483/head
Sage Weil [Tue, 25 May 2021 17:55:08 +0000 (13:55 -0400)]
cephadm: stop passing --no-hosts to podman

This reverts cfc1f914ce74f1fd1f45e2efd3ba2ddcb2da129a, which is no longer
neceesary because (1) we don't use socket.getfqdn(), and (2) we generally
do not rely on DNS or /etc/hosts at all anymore (with the exception of
the upgrade transition).

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agomgr/nfs: use host.addr for backend IP where possible
Sage Weil [Wed, 26 May 2021 22:38:05 +0000 (18:38 -0400)]
mgr/nfs: use host.addr for backend IP where possible

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agomgr/cephadm: convert host addr if non-IP to IP
Sage Weil [Tue, 25 May 2021 20:10:49 +0000 (16:10 -0400)]
mgr/cephadm: convert host addr if non-IP to IP

Previously we allowed the host.addr to be a DNS name (short or fqdn).
This is problematic because of the inconsistent way that docker and podman
handle /etc/hosts, and undesirable because relying on external DNS is
an external source of failure for the cluster without any benefit in
return (simply updating DNS is not sufficient to make ceph behave).

So: update any non-IP to an IP as soon as we start up (presumably on
upgrade).  If we get a loopback address (127.0.0.1 or 127.0.1.1), then
wait and hope that the next instance of the manager has better luck.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agomgr/dashboard,prometheus: new method of getting mgr IP
Sage Weil [Tue, 25 May 2021 17:00:35 +0000 (13:00 -0400)]
mgr/dashboard,prometheus: new method of getting mgr IP

- Use a centralized method get_mgr_ip()
- Look up the hostname via DNS.  This is a bit more reliable than
getfqdn() since it will work even when podman adds the container
name to /etc/hosts.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agodoc/cephadm: remove any reference to the use of DNS or /etc/hosts
Sage Weil [Tue, 25 May 2021 16:14:39 +0000 (12:14 -0400)]
doc/cephadm: remove any reference to the use of DNS or /etc/hosts

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agomgr/cephadm: use known host addr
Sage Weil [Fri, 21 May 2021 17:31:31 +0000 (13:31 -0400)]
mgr/cephadm: use known host addr

If the host IP/addr is known, use that.  The addr might even be a FQDN
instead of an IP address, in which case we want to look that up instead
of the bare hostname.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agocrimson/monc: handle_auth_request() doesn't depend on active_con. 41578/head
Radoslaw Zarzynski [Thu, 27 May 2021 14:55:40 +0000 (14:55 +0000)]
crimson/monc: handle_auth_request() doesn't depend on active_con.

Following crash occured at Sepia [1]:

```
INFO  2021-05-26 20:16:32,872 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] ProtocolV2::start_accept(): targ
et_addr=172.21.15.119:55220/0
DEBUG 2021-05-26 20:16:32,872 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] TRIGGER ACCEPTING, was NONE
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] SEND(26) banner: len_payload=16,
 supported=1, required=0, banner="ceph v2
"
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] RECV(10) banner: "ceph v2
"
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] GOT banner: payload_len=16
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] RECV(16) banner features: supported=1 required=0
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] WRITE HelloFrame: my_type=osd, peer_addr=172.21.15.119:55220/0
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> unknown.? -@55220] GOT HelloFrame: my_type=client peer_addr=v2:172.21.15.119:6803/31733
INFO  2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> client.? -@55220] UPDATE: peer_type=client, policy(lossy=true server=true standby=false resetcheck=false)
DEBUG 2021-05-26 20:16:32,873 [shard 0] ms - [osd.0(client) v2:172.21.15.119:6803/31733 >> client.? -@55220] GOT AuthRequestFrame: method=2, preferred_modes={1, 2}, payload_len=174
/home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-4622-gaa1dc559/rpm/el8/BUILD/ceph-17.0.0-4622-gaa1dc559/src/crimson/mon/MonClient.cc:399:10: runtime error: member access within null pointer of type 'struct Connection'
Segmentation fault on shard 0.
Backtrace:
 0# 0x000055E84CF44C1F in ceph-osd
 1# FatalSignal::signaled(int, siginfo_t const*) in ceph-osd
 2# FatalSignal::install_oneshot_signal_handler<11>()::{lambda(int, siginfo_t*, void*)#1}::_FUN(int, siginfo_t*, void*) in ceph-osd
 3# 0x00007F2BC88C0B20 in /lib64/libpthread.so.0
 4# crimson::mon::Connection::get_conn() in ceph-osd
 5# crimson::mon::Client::handle_auth_request(seastar::shared_ptr<crimson::net::Connection>, seastar::lw_shared_ptr<AuthConnectionMeta>, bool, unsigned int, ceph::buffer::v15_2_0::list const&, ceph::buffer::v15_2_0::list*) in ceph-osd
 6# crimson::net::ProtocolV2::_handle_auth_request(ceph::buffer::v15_2_0::list&, bool) in ceph-osd
 7# 0x000055E84DF67669 in ceph-osd
 8# 0x000055E84DF68775 in ceph-osd
 9# 0x000055E846F47F60 in ceph-osd
10# 0x000055E85296770F in ceph-osd
11# 0x000055E85296CC50 in ceph-osd
12# 0x000055E852B1ECBB in ceph-osd
13# 0x000055E85267C73A in ceph-osd
14# main in ceph-osd
15# __libc_start_main in /lib64/libc.so.6
16# _start in ceph-osd
Fault at location: 0x98
```

[1]: http://pulpito.front.sepia.ceph.com/rzarzynski-2021-05-26_12:20:26-rados-master-distro-basic-smithi/6136907

When the `handle_auth_request()` happens, there is no guarantee
`active_con` is being available. This is reflected in the classical
implementation:

```cpp
int MonClient::handle_auth_request(
  Connection *con,
  // ...
  ceph::buffer::list *reply)
{
  // ...
  bool isvalid = ah->verify_authorizer(
    cct,
    *rotating_secrets,
    payload,
    auth_meta->get_connection_secret_length(),
    reply,
    &con->peer_name,
    &con->peer_global_id,
    &con->peer_caps_info,
    &auth_meta->session_key,
    &auth_meta->connection_secret,
    ac);
```

The patch transplate the same logic to crimson.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agoos/bluestore: pass string_view to ctor of Allocator 41573/head
Kefu Chai [Thu, 27 May 2021 14:26:05 +0000 (22:26 +0800)]
os/bluestore: pass string_view to ctor of Allocator

just for the sake of correctness, as they don't need a full-blown
std::string, what they need is but a string like object. and they always
create a std::string instance as a member variable if they want to have
a copy of it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agotools/ceph_objectstore_tool: destruct ObjectStore using unique_ptr<> 41520/head
Kefu Chai [Thu, 27 May 2021 15:14:36 +0000 (23:14 +0800)]
tools/ceph_objectstore_tool: destruct ObjectStore using unique_ptr<>

before this change, cot never destructs the created ObjectStore
instances.

after this change, they are destructed upon returning from main().

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoosd: pass unique_ptr<ObjectStore> to ctor of OSD
Kefu Chai [Thu, 27 May 2021 03:08:48 +0000 (11:08 +0800)]
osd: pass unique_ptr<ObjectStore> to ctor of OSD

less error-prone, and it's simpler to manage the resource using RAII

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoosd/OSD: remove unused include headers
Kefu Chai [Tue, 25 May 2021 07:43:47 +0000 (15:43 +0800)]
osd/OSD: remove unused include headers

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoosd/OSD: use scope_guard to umount objecstore
Kefu Chai [Tue, 25 May 2021 07:41:26 +0000 (15:41 +0800)]
osd/OSD: use scope_guard to umount objecstore

RAII can simplify the clean up logic in OSD::mkfs().

and since `ch` is a smart pointer, so it is able to take care of itself,
as long as we ensure that it is destructed before objectstore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoosd: pass unique_ptr<ObjectStore> to OSD::mkfs()
Kefu Chai [Tue, 25 May 2021 07:34:34 +0000 (15:34 +0800)]
osd: pass unique_ptr<ObjectStore> to OSD::mkfs()

less error prune this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoos: let ObjectStore::create() return unique_ptr<>
Kefu Chai [Tue, 25 May 2021 07:18:21 +0000 (15:18 +0800)]
os: let ObjectStore::create() return unique_ptr<>

instead of returning a raw pointer of ObjectStore, let
`ObjectStore::create()` return a `std::unique_ptr<ObjectStore>`.

less error prune this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41495 from pleiadesian/patch-quota-cache
ofriedma [Thu, 27 May 2021 14:46:41 +0000 (17:46 +0300)]
Merge pull request #41495 from pleiadesian/patch-quota-cache

rgw: remove quota soft threshold

4 years agoMerge pull request #41288 from ofriedma/wip-ofriedma-segfault
ofriedma [Thu, 27 May 2021 14:32:08 +0000 (17:32 +0300)]
Merge pull request #41288 from ofriedma/wip-ofriedma-segfault

rgw: crash on multipart upload to bucket with policy

4 years agoMerge pull request #41529 from Yenya/rbd-deep-cp-docs
Ilya Dryomov [Thu, 27 May 2021 13:23:42 +0000 (15:23 +0200)]
Merge pull request #41529 from Yenya/rbd-deep-cp-docs

doc/rbd: document cp versus deep cp

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
4 years agodoc/rbd: document cp versus deep cp 41529/head
Jan "Yenya" Kasprzak [Tue, 25 May 2021 11:43:52 +0000 (13:43 +0200)]
doc/rbd: document cp versus deep cp

I found that the difference between "rbd cp" and "rbd deep cp",
i.e. what "deep" means in this context, is documented only in
the mailing list archive and in the Mimic reelase notes.

Let's make the difference explicit in the manpage and in rbd --help.

Signed-off-by: Jan "Yenya" Kasprzak <kas@fi.muni.cz>
4 years agoMerge pull request #41224 from adk3798/change-mon-stack-images-docs
Sebastian Wagner [Thu, 27 May 2021 09:54:24 +0000 (11:54 +0200)]
Merge pull request #41224 from adk3798/change-mon-stack-images-docs

doc/cephadm: recommend redeploying monitoring stack daemon after changing image

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
4 years agoMerge pull request #41566 from anthonyeleven/anthonyeleven/update-rgw-yaml-in
Kefu Chai [Thu, 27 May 2021 09:39:30 +0000 (17:39 +0800)]
Merge pull request #41566 from anthonyeleven/anthonyeleven/update-rgw-yaml-in

src/common/options: improve spelling, capitalization, and wording in rgw.yml.in

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41400 from liewegas/fix-50113
Sebastian Wagner [Thu, 27 May 2021 09:36:33 +0000 (11:36 +0200)]
Merge pull request #41400 from liewegas/fix-50113

doc/releases/pacific: add note about rgw on upgrade

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
4 years agoMerge pull request #40831 from vshankar/wip-cephfs-mirror-incremental-sync
Milind Changire [Thu, 27 May 2021 08:09:23 +0000 (13:39 +0530)]
Merge pull request #40831 from vshankar/wip-cephfs-mirror-incremental-sync

cephfs-mirror: incremental sync

Reviewed-by: Milind Changire <mchangir@redhat.com>
4 years agoMerge pull request #41279 from pkalever/promote-attach
Ilya Dryomov [Thu, 27 May 2021 07:58:32 +0000 (09:58 +0200)]
Merge pull request #41279 from pkalever/promote-attach

rbd: promote rbd-nbd attach and detach at rbd integrated cli

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
4 years agoMerge pull request #41378 from varshar16/wip-check-file-inputs-nfs
Kefu Chai [Thu, 27 May 2021 07:23:44 +0000 (15:23 +0800)]
Merge pull request #41378 from varshar16/wip-check-file-inputs-nfs

pybind/mgr: generalize CLICheckNonemptyFileInput() error msg

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Alfonso MartĂ­nez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Waad Alkhoury <walkhour@redhat.com>
4 years agoMerge pull request #41381 from AmnonHanuhov/wip-Refactor_PeeringState
Kefu Chai [Thu, 27 May 2021 07:21:47 +0000 (15:21 +0800)]
Merge pull request #41381 from AmnonHanuhov/wip-Refactor_PeeringState

crimson/osd: Refactor PeeringState

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agoMerge pull request #41516 from tchaikov/wip-47380
Kefu Chai [Thu, 27 May 2021 07:19:12 +0000 (15:19 +0800)]
Merge pull request #41516 from tchaikov/wip-47380

mon/OSDMonitor: drop stale failure_info even if can_mark_down()

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #41546 from tchaikov/wip-crush-alignment
Kefu Chai [Thu, 27 May 2021 07:17:48 +0000 (15:17 +0800)]
Merge pull request #41546 from tchaikov/wip-crush-alignment

crush/crush: ensure alignof(crush_work_bucket) is 1

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agoMerge pull request #41517 from tchaikov/wip-osd-osd-types
Kefu Chai [Thu, 27 May 2021 07:17:11 +0000 (15:17 +0800)]
Merge pull request #41517 from tchaikov/wip-osd-osd-types

osd/osd_type: use f->dump_unsigned() when appropriate

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #41527 from t-msn/cleanup-peeringstate-init
Kefu Chai [Thu, 27 May 2021 07:16:07 +0000 (15:16 +0800)]
Merge pull request #41527 from t-msn/cleanup-peeringstate-init

osd/PeeringState: cleanup dead code in PeeringState::init

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41565 from anthonyeleven/anthonyeleven/update-rgw-chunk
Kefu Chai [Thu, 27 May 2021 06:13:24 +0000 (14:13 +0800)]
Merge pull request #41565 from anthonyeleven/anthonyeleven/update-rgw-chunk

doc/radosgw: modernize reference to rgw_max_chunk_size

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agosrc/common/options: improve spelling, capitalization, and wording 41566/head
Anthony D'Atri [Thu, 27 May 2021 05:47:06 +0000 (22:47 -0700)]
src/common/options: improve spelling, capitalization, and wording

Signed-off-by: Anthony D'Atri <anthony.datri@gmail.com>
4 years agodoc/radosgw: modernize reference to rgw_max_chunk_size 41565/head
Anthony D'Atri [Thu, 27 May 2021 05:37:33 +0000 (22:37 -0700)]
doc/radosgw: modernize reference to rgw_max_chunk_size

The value changed from 512KB to 4MB in Kraken.  Reference the prevailing
option default instead of embedding the current value.

Signed-off-by: Anthony D'Atri anthony.datri@gmail.com
4 years agoMerge pull request #41564 from tchaikov/wip-dmclock-seastar
Samuel Just [Thu, 27 May 2021 05:05:05 +0000 (22:05 -0700)]
Merge pull request #41564 from tchaikov/wip-dmclock-seastar

dmclock: pick up change to support seastar

Reviewed-by: Samuel Just <sjust@redhat.com>
4 years agoMerge pull request #41560 from athanatos/sjust/wip-clang-linker-problem
Samuel Just [Thu, 27 May 2021 05:04:19 +0000 (22:04 -0700)]
Merge pull request #41560 from athanatos/sjust/wip-clang-linker-problem

crimson/os/seastore: resolve clang build problems, misc cleanups

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agodmclock: pick up change to support seastar 41564/head
Kefu Chai [Thu, 27 May 2021 03:31:32 +0000 (11:31 +0800)]
dmclock: pick up change to support seastar

so if WITH_SEASTAR is defined, the POSIX synchronous primitives
are either replaced with seastar counterparts or disabled.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agodoc/cephadm: enrich "service status" 41561/head
Zac Dover [Thu, 27 May 2021 01:28:38 +0000 (11:28 +1000)]
doc/cephadm: enrich "service status"

This PR improves the syntax of the "Service
Status" section of the "Service Managment"
section of the cephadm guide. This includes
pretty significant reworking of the information
in the section, so vetting this one might be
annoying. Anyway, I think I've lowered the
cognitive load on the reader.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
4 years agocrimson/os/seastore/seastore: add helpers to simplify omap usage 41560/head
Samuel Just [Wed, 26 May 2021 23:57:12 +0000 (16:57 -0700)]
crimson/os/seastore/seastore: add helpers to simplify omap usage

Add _omap_get_values and _omap_get_value to clarify omap_get_values and
get_attr.  Also resolves a clang linker error.

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agocrimson/os/seastore: use tuple return for omap_list throughout
Samuel Just [Wed, 26 May 2021 22:40:32 +0000 (15:40 -0700)]
crimson/os/seastore: use tuple return for omap_list throughout

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agocrimson/os/seastore/seastore.h: remove unncessary whitespace
Samuel Just [Wed, 26 May 2021 22:39:34 +0000 (15:39 -0700)]
crimson/os/seastore/seastore.h: remove unncessary whitespace

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agocrimson/os/seastore/seastore.h: remove non-const repeat_with_onode
Samuel Just [Wed, 26 May 2021 22:39:12 +0000 (15:39 -0700)]
crimson/os/seastore/seastore.h: remove non-const repeat_with_onode

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agocrimson/os/futurized_store: use ceph::bufferlist to match
Samuel Just [Wed, 26 May 2021 22:38:44 +0000 (15:38 -0700)]
crimson/os/futurized_store: use ceph::bufferlist to match

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agoMerge PR #41351 into master
Sage Weil [Wed, 26 May 2021 22:42:29 +0000 (18:42 -0400)]
Merge PR #41351 into master

* refs/pull/41351/head:
cephadm: clean-up error message
cephadm: raise an error when `--config` file is not found

Reviewed-by: Sage Weil <sage@redhat.com>
4 years agoMerge PR #41283 into master
Sage Weil [Wed, 26 May 2021 22:42:06 +0000 (18:42 -0400)]
Merge PR #41283 into master

* refs/pull/41283/head:
cephadm: manage cephadm log with logrotated

Reviewed-by: Sebastian Wagner <swagner@suse.com>
4 years agomgr/cephadm: resolve IP at 'orch host add' time
Sage Weil [Fri, 21 May 2021 16:32:49 +0000 (12:32 -0400)]
mgr/cephadm: resolve IP at 'orch host add' time

We prefer to always have a real IP for hosts in the cluster.  This avoids
a reliance on DNS for most operations.

Perhaps more importantly, it means we are less sensitive to inconsistent
host lookup results, for example due to (1) mismatched /etc/hosts files
between machines, or (2) a lookup of the local hostname that returns
127.0.1.1.

Adjust with_hosts() fixture to take an addr, and adjust tests accordingly.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agodoc/releases/octopus.rst: rados updates for 15.2.13 41540/head
Neha Ojha [Wed, 26 May 2021 21:36:59 +0000 (21:36 +0000)]
doc/releases/octopus.rst: rados updates for 15.2.13

Signed-off-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #41465 from adamemerson/wip-50169
Adam C. Emerson [Wed, 26 May 2021 17:52:57 +0000 (13:52 -0400)]
Merge pull request #41465 from adamemerson/wip-50169

rgw: Simplify log shard probing and err on the side of omap

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #41554 from rzarzynski/wip-crimson-simplify-ox-lt-mgmt
Kefu Chai [Wed, 26 May 2021 15:03:46 +0000 (23:03 +0800)]
Merge pull request #41554 from rzarzynski/wip-crimson-simplify-ox-lt-mgmt

crimson/osd: simplify the management of OpsExecuter's life-time.

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agocrimson/osd: simplify the management of OpsExecuter's life-time. 41554/head
Radoslaw Zarzynski [Wed, 26 May 2021 13:20:52 +0000 (13:20 +0000)]
crimson/osd: simplify the management of OpsExecuter's life-time.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 years agoMerge PR #41510 into master
Sage Weil [Wed, 26 May 2021 14:12:06 +0000 (10:12 -0400)]
Merge PR #41510 into master

* refs/pull/41510/head:
doc/cephfs/nfs: remove documented limitation

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
4 years agoMerge pull request #41547 from t-msn/wip-update-cephspec
Kefu Chai [Wed, 26 May 2021 10:44:31 +0000 (18:44 +0800)]
Merge pull request #41547 from t-msn/wip-update-cephspec

ceph.spec.in: install gcc-toolset-9-gcc-c++ for rhel only

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agocrush/crush: ensure alignof(crush_work_bucket) is 1 41546/head
Kefu Chai [Wed, 26 May 2021 06:58:33 +0000 (14:58 +0800)]
crush/crush: ensure alignof(crush_work_bucket) is 1

in do_rule(), we allocate the space for crush_work_bucket using

char work[crush_work_size(crush, maxout)];

where crush_work_size() calculate the size like:

map->working_size + result_max * 3 * sizeof(__u32);

so work is allocated on stack, but the alignment of the
crush_work_bucket struct is not taken into consideration, so in
crush_init_workspace(), point could point to an address which is not
aligned to 8 bytes, which is the alignment of crush_work_bucket by
default. so is its member variables, all of them are uint32_t, and hence
are also 8-bytes aligned.

to ensure the compiler generate the correct assembly for accessing
the member variables without assuming that the struct is 8-byte
aligned, we should specify the alignment explicitly.

in this change, `__attribute__ ((packed))` is specified for
crush_work_bucket, so that its alignment is 1.

this issue is spotted by ASan, it complains like:

../src/crush/mapper.c:881:22: runtime error: member access within misaligned address 0x7ffe051f90dc for type 'struct crush_work_bucket', which requires 8 byte alignment
0x7ffe051f90dc: note: pointer points here
  1d e5 77 3d 68 55 00 00  00 00 00 00 00 00 00 00  20 93 1f 05 fe 7f 00 00  10 91 1f 05 fe 7f 00 00
              ^
../src/crush/mapper.c:882:22: runtime error: member access within misaligned address 0x7ffe051f90dc for type 'struct crush_work_bucket', which requires 8 byte alignment
0x7ffe051f90dc: note: pointer points here
  1d e5 77 3d 00 00 00 00  00 00 00 00 00 00 00 00  20 93 1f 05 fe 7f 00 00  10 91 1f 05 fe 7f 00 00
              ^
../src/crush/mapper.c:883:20: runtime error: member access within misaligned address 0x7ffe051f90dc for type 'struct crush_work_bucket', which requires 8 byte alignment
0x7ffe051f90dc: note: pointer points here
  1d e5 77 3d 00 00 00 00  00 00 00 00 00 00 00 00  20 93 1f 05 fe 7f 00 00  10 91 1f 05 fe 7f 00 00
              ^

Fixes: https://tracker.ceph.com/issues/50978
Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agorgw: remove quota soft threshold 41495/head
Zulai Wang [Sat, 22 May 2021 13:21:10 +0000 (21:21 +0800)]
rgw: remove quota soft threshold

Remove quota soft threshold, which causes expensive checks for sharded buckets

Fixes: 14eabd4aa7b8a2e2c0c43fe7f877ed2171277526
Signed-off-by: Zulai Wang <wangzl31@outlook.com>
4 years agoceph.spec.in: install gcc-toolset-9-gcc-c++ for rhel only 41547/head
Misono Tomohiro [Wed, 26 May 2021 07:10:35 +0000 (16:10 +0900)]
ceph.spec.in: install gcc-toolset-9-gcc-c++ for rhel only

Otherwise fedora 33 complains there is no gcc-toolset-9-gcc-c++
when running "WITH_SEASTAR=true ./install_deps.sh"

Related to: 36759b53635
Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
4 years agoMerge pull request #41545 from tchaikov/wip-vstart-fix
Kefu Chai [Wed, 26 May 2021 07:18:22 +0000 (15:18 +0800)]
Merge pull request #41545 from tchaikov/wip-vstart-fix

vstart.sh: pass the addition option to parse_block_devs()

Reviewed-by: Samuel Just <sjust@redhat.com>
4 years agomgr/dashboard/access_control: fix flake8 expected 2 blank lines error 41378/head
Varsha Rao [Wed, 19 May 2021 08:12:04 +0000 (13:42 +0530)]
mgr/dashboard/access_control: fix flake8 expected 2 blank lines error

Signed-off-by: Varsha Rao <varao@redhat.com>
4 years agomgr/nfs: use CLICheckNonemptyFileInput decorator
Varsha Rao [Tue, 18 May 2021 09:16:32 +0000 (14:46 +0530)]
mgr/nfs: use CLICheckNonemptyFileInput decorator

Fixes: https://tracker.ceph.com/issues/50858
Signed-off-by: Varsha Rao <varao@redhat.com>
4 years agopybind/mgr: generalize CLICheckNonemptyFileInput() error msg
Varsha Rao [Tue, 18 May 2021 09:12:29 +0000 (14:42 +0530)]
pybind/mgr: generalize CLICheckNonemptyFileInput() error msg

Signed-off-by: Varsha Rao <varao@redhat.com>
4 years agopybind/mgr: check if file contains only spaces
Varsha Rao [Mon, 17 May 2021 13:37:53 +0000 (19:07 +0530)]
pybind/mgr: check if file contains only spaces

Signed-off-by: Varsha Rao <varao@redhat.com>
4 years agovstart.sh: use || instead of "-o" 41545/head
Kefu Chai [Wed, 26 May 2021 06:02:51 +0000 (14:02 +0800)]
vstart.sh: use || instead of "-o"

to silence the warning like:

 SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.

see also
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agovstart.sh: pass the addition option to parse_block_devs()
Kefu Chai [Wed, 26 May 2021 06:00:37 +0000 (14:00 +0800)]
vstart.sh: pass the addition option to parse_block_devs()

to address the regression introduced by
3ea5242e381a850c080ee9edbaeea28059ad4da9

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41543 from runsisi/wip-fix-clay-doc
Kefu Chai [Wed, 26 May 2021 05:55:03 +0000 (13:55 +0800)]
Merge pull request #41543 from runsisi/wip-fix-clay-doc

doc: add missing crush-device-class={device-class} pair for clay code profile

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41542 from tchaikov/wip-vstart-cleanup
Kefu Chai [Wed, 26 May 2021 04:58:37 +0000 (12:58 +0800)]
Merge pull request #41542 from tchaikov/wip-vstart-cleanup

vstart: cleanups

Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
4 years agoqa/workunits/rbd: use rbd cli for device attach/detach commands 41279/head
Prasanna Kumar Kalever [Tue, 25 May 2021 12:24:29 +0000 (17:54 +0530)]
qa/workunits/rbd: use rbd cli for device attach/detach commands

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
4 years agorbd: improve conditional compilation specific checks
Prasanna Kumar Kalever [Mon, 17 May 2021 09:40:45 +0000 (15:10 +0530)]
rbd: improve conditional compilation specific checks

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
4 years agorbd: promote rbd-nbd attach and detach at rbd integrated cli
Prasanna Kumar Kalever [Thu, 6 May 2021 07:27:56 +0000 (12:57 +0530)]
rbd: promote rbd-nbd attach and detach at rbd integrated cli

Example:
$ rbd device attach rbd-pool/image --device /dev/nbd0 --device-type nbd --force
$ rbd device detach rpool/image --device-type nbd

for now returning EOPNOTSUPP with krbd, ggate and wnbd

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
4 years agocrimson/os/seastore/logging.h: use ##__VA_ARGS__ rather than __VA_OPT__
Samuel Just [Tue, 25 May 2021 00:45:16 +0000 (17:45 -0700)]
crimson/os/seastore/logging.h: use ##__VA_ARGS__ rather than __VA_OPT__

This seems to work with both clang and gcc for now.

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agocrimson/.../staged-fltree/tree_utils: fix cursor binding
Samuel Just [Tue, 25 May 2021 00:46:23 +0000 (17:46 -0700)]
crimson/.../staged-fltree/tree_utils: fix cursor binding

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agotest/crimson/test_backfill: fix captured bindings
Samuel Just [Wed, 26 May 2021 04:43:27 +0000 (04:43 +0000)]
test/crimson/test_backfill: fix captured bindings

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agotest/crimson/seastore/transaction_manager_test_state: mark TestSegmentManagerWrapper...
Samuel Just [Tue, 25 May 2021 00:46:54 +0000 (17:46 -0700)]
test/crimson/seastore/transaction_manager_test_state: mark TestSegmentManagerWrapper final

Signed-off-by: Samuel Just <sjust@redhat.com>
4 years agoMerge pull request #41536 from rzarzynski/wip-crimson-fix-ox-lifetime
Kefu Chai [Wed, 26 May 2021 03:42:58 +0000 (11:42 +0800)]
Merge pull request #41536 from rzarzynski/wip-crimson-fix-ox-lifetime

crimson/osd: extend lifetime of OpsExecuter to match all_completed

Reviewed-by: Xuehan Xu <xuxuehan@360.cn>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agovstart: define helper for parsing block_devs options 41542/head
Kefu Chai [Wed, 26 May 2021 01:10:05 +0000 (09:10 +0800)]
vstart: define helper for parsing block_devs options

for better readability, and to simplify the code

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agovstart: use block_devs for {blue,sea}store_dev
Kefu Chai [Wed, 26 May 2021 01:06:19 +0000 (09:06 +0800)]
vstart: use block_devs for {blue,sea}store_dev

so the logic handling bluestore_dev and seastore_dev can be merged.

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agovstart: use here document to define usage
Kefu Chai [Wed, 26 May 2021 00:56:19 +0000 (08:56 +0800)]
vstart: use here document to define usage

for better readability

Signed-off-by: Kefu Chai <kchai@redhat.com>
4 years agodoc: add missing crush-device-class={device-class} pair for clay code profile 41543/head
luo.runbing [Wed, 26 May 2021 02:41:40 +0000 (10:41 +0800)]
doc: add missing crush-device-class={device-class} pair for clay code profile

`crush-device-class` is optional for `ceph osd erasure-code-profile set`,
add it for the sake of completeness

Signed-off-by: luo.runbing <luo.runbing@zte.com.cn>
4 years agoMerge pull request #41484 from liewegas/cephadm-progress
Kefu Chai [Wed, 26 May 2021 02:36:31 +0000 (10:36 +0800)]
Merge pull request #41484 from liewegas/cephadm-progress

mgr/cephadm: progress item for service apply

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
4 years agoMerge pull request #41452 from ifed01/wip-ifed-fix-no-track
Kefu Chai [Wed, 26 May 2021 02:33:58 +0000 (10:33 +0800)]
Merge pull request #41452 from ifed01/wip-ifed-fix-no-track

os/bluestore: track bluestore_warn_on_no_per_pg_omap cfg parameter ch…

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
4 years agoMerge pull request #41453 from ifed01/wip-ifed-stray-omap
Kefu Chai [Wed, 26 May 2021 02:33:22 +0000 (10:33 +0800)]
Merge pull request #41453 from ifed01/wip-ifed-stray-omap

os/bluestore: improve stray omap logging during fsck.

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
4 years agoMerge pull request #41398 from aclamk/wip-aclamk-avl-block-picker-improve
Kefu Chai [Wed, 26 May 2021 02:32:14 +0000 (10:32 +0800)]
Merge pull request #41398 from aclamk/wip-aclamk-avl-block-picker-improve

os/bluestore: Improve _block_picker function

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41488 from liewegas/cephadm-conf
Kefu Chai [Wed, 26 May 2021 02:31:33 +0000 (10:31 +0800)]
Merge pull request #41488 from liewegas/cephadm-conf

config,mgr: expose ceph.conf path to mgr modules

Reviewed-by: Kefu Chai <kchai@redhat.com>