]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
5 years agoosd: remove old command workqueue, threadpool
Sage Weil [Tue, 10 Sep 2019 03:09:50 +0000 (22:09 -0500)]
osd: remove old command workqueue, threadpool

These are now sent to the asok handler.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd: drop MMonCommand handling
Sage Weil [Tue, 10 Sep 2019 03:08:15 +0000 (22:08 -0500)]
osd: drop MMonCommand handling

Nothing sends these.. or has in a very very long time, AFAICS.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosdc/Objecter: resend OSD tell commands on EAGAIN
Sage Weil [Tue, 10 Sep 2019 21:41:18 +0000 (16:41 -0500)]
osdc/Objecter: resend OSD tell commands on EAGAIN

Request map *and* resend.  We don't have map epoch info about when the
reply was sent, and the OSD isn't ordering with respect to epochs anyway.
So, resend now, just in case we already saw a map change, or because we
were suffering from a peering vs command race on the OSD side, and then
also request a new map from the mon, in case we are missing a map update.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd: route tell commands to asok; migrate commands
Sage Weil [Tue, 10 Sep 2019 03:07:03 +0000 (22:07 -0500)]
osd: route tell commands to asok; migrate commands

- move items from _do_command to asok_command in OSD.cc
- update PG::do_command to take a std::function on_finish
- sprinkle in some osd_lock locking (_do_command implicitly locks osd_lock,
  asok_command() does not; most commands don't need it)

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd: use unique_ptr<Formatter> for asok_command
Sage Weil [Mon, 9 Sep 2019 19:55:13 +0000 (14:55 -0500)]
osd: use unique_ptr<Formatter> for asok_command

Simpify lifecycle.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/ceph_context: add generic asok 'injectargs'
Sage Weil [Tue, 10 Sep 2019 12:06:11 +0000 (07:06 -0500)]
common/ceph_context: add generic asok 'injectargs'

Lots of scripts and users expect this, even though 'config set' is
generally nicer to use.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: allow dup prefixes
Sage Weil [Tue, 10 Sep 2019 15:10:12 +0000 (10:10 -0500)]
common/admin_socket: allow dup prefixes

Allow multiple commands to register with the same prefix (but different
commands description strings).

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: refactor with sync and async execute_command variants
Sage Weil [Tue, 10 Sep 2019 21:39:37 +0000 (16:39 -0500)]
common/admin_socket: refactor with sync and async execute_command variants

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: pass input bufferlist
Sage Weil [Mon, 9 Sep 2019 19:52:01 +0000 (14:52 -0500)]
common/admin_socket: pass input bufferlist

Pass this to the async handler only for now, since the sync implementations
don't currently use it.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd: transition to call_async() for asok
Sage Weil [Mon, 9 Sep 2019 18:31:34 +0000 (13:31 -0500)]
osd: transition to call_async() for asok

And some variable renames, error path fixup.

No other significant functional change.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: support alternative call_async()
Sage Weil [Fri, 6 Sep 2019 21:45:05 +0000 (16:45 -0500)]
common/admin_socket: support alternative call_async()

Some tell commands reply asynchronously.  Support that through the generic
infrastructure.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agomon/MonClient: send tell commands out of band via MCommand
Sage Weil [Fri, 6 Sep 2019 20:18:12 +0000 (15:18 -0500)]
mon/MonClient: send tell commands out of band via MCommand

The current tell mon command handling is pretty fragile and semi-broken:
we force the client to (exclusively) connect to the target mon, disrupting
other monclient business, and the retry logic is fragile.

Instead, use entirely independent connections for each tell command, and
tear them down when we get a reply. Implement independent and simple
error handling and timeouts.

Keep most of the old behavior alive so that we can still use tell against
pre-octopus mons.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agomon: accept tell commands via MCommand and send them to asok handler
Sage Weil [Fri, 6 Sep 2019 20:06:37 +0000 (15:06 -0500)]
mon: accept tell commands via MCommand and send them to asok handler

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: return int from hook call()
Sage Weil [Fri, 6 Sep 2019 15:36:31 +0000 (10:36 -0500)]
common/admin_socket: return int from hook call()

Previously, call() returned a bool.  Return an int instead so we can
wire this up to tell command return values.

The admin socket 'ceph daemon ...' unix domain socket protocol does not
pass a return code, only data, so we cannot pass these errors that way.
We have two choices: make error codes silently succeed when accessed via
asok (so that we get an error string etc), or make them fail without any
specific error code or string.

Unfortunately, there are several cases where an exception was caught and
what() returned as a string, or where error strings are returned.  These
would "blindly" fail if we took the latter approach.

So, for the asok interface, -ENOSYS means a "hard" error that gives the
user no data and makes the 'ceph daemon ...' command return an error code.
Other error codes are interpreted as a success.  This is ONLY for the
asok interface; the tell interface has full fidelity with error codes and
error strings.

Note that this means that 'net new' tell-style commands that we move over
to this handler will also appear to succeed via the 'ceph daemon'
interface when they return error codes.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agomgr/DaemonServer: route MCommand (for octopus+) to asok commands
Sage Weil [Fri, 6 Sep 2019 14:44:23 +0000 (09:44 -0500)]
mgr/DaemonServer: route MCommand (for octopus+) to asok commands

Send mgr 'tell' commands (if they originate from a octopus+ client that
knows the difference between MCommand and MMgrCommand) to the asok
comand queue.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agodo not use 'ceph tell mgr'
Sage Weil [Tue, 10 Sep 2019 15:56:54 +0000 (10:56 -0500)]
do not use 'ceph tell mgr'

This is now for a daemon/asok command, not a module command.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agopybind/ceph_argparse: disambiguate mgr tell and CLI commands
Sage Weil [Tue, 10 Sep 2019 18:53:54 +0000 (13:53 -0500)]
pybind/ceph_argparse: disambiguate mgr tell and CLI commands

The mgr tell commands are somewhat special in that you can tell the mgr
with an empty id ('ceph tell mgr' or target ('mgr', '')) to get the
currently active mgr.  This makes it hard to disabiguate between a tell
command and a CLI command.

Fix that by explicitly setting the target to 'mon-mgr' when a CLI command
is flagged as a mgr command.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoceph: make 'ceph tell mgr.*' send to the active mgr
Sage Weil [Tue, 10 Sep 2019 18:50:50 +0000 (13:50 -0500)]
ceph: make 'ceph tell mgr.*' send to the active mgr

We can only send tell commands to the active mgr.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoceph: send 'ceph tell mgr.X' to the right mgr
Sage Weil [Fri, 6 Sep 2019 14:43:35 +0000 (09:43 -0500)]
ceph: send 'ceph tell mgr.X' to the right mgr

Previously this would go to the active mgr, whoever that was.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agolibrados: add rados_mgr_command_target
Sage Weil [Fri, 6 Sep 2019 14:42:28 +0000 (09:42 -0500)]
librados: add rados_mgr_command_target

This variant lets you specify which mgr to talk to.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agomgr/MgrClient: add start_command variant that takes a target
Sage Weil [Fri, 6 Sep 2019 14:43:01 +0000 (09:43 -0500)]
mgr/MgrClient: add start_command variant that takes a target

Note that the initial implementation can only target the active mgr!

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: drop unregister_command(); use per-hook variant
Sage Weil [Thu, 5 Sep 2019 22:24:55 +0000 (17:24 -0500)]
common/admin_socket: drop unregister_command(); use per-hook variant

There's never a need to unregister individual commands; doing it by hook
is sufficient for all users.  Simpler and faster.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: drop explicit prefix arg to register_command
Sage Weil [Thu, 5 Sep 2019 22:19:50 +0000 (17:19 -0500)]
common/admin_socket: drop explicit prefix arg to register_command

This is always the cmddesc prefix.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: simplify command routing
Sage Weil [Thu, 5 Sep 2019 22:11:26 +0000 (17:11 -0500)]
common/admin_socket: simplify command routing

Back in e30e937c8962249af283a7571eb106ef444b79e3 we made it possible to
route a command via any prefix. This worked when we wanted to pass
arguments but were just dealing with a vector<string>.  These days we have
an actual prefix followed by named arguments, so we don't need this
ad hoc routing.

Derive the prefix from the cmddesc at registration time, and match that
explicitly against the prefix at execution time.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: add ability to process MCommand via asok queue
Sage Weil [Thu, 5 Sep 2019 19:24:30 +0000 (14:24 -0500)]
common/admin_socket: add ability to process MCommand via asok queue

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: pass cmdvec to execute_command
Sage Weil [Thu, 5 Sep 2019 19:24:02 +0000 (14:24 -0500)]
common/admin_socket: pass cmdvec to execute_command

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: use pipe for general wakeup
Sage Weil [Thu, 5 Sep 2019 19:23:27 +0000 (14:23 -0500)]
common/admin_socket: use pipe for general wakeup

Use the pipe to wake up the thread.  Use a separate bool to signal a
shutdown.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoinclude/compat: add flags arg to pipe_cloexec
Sage Weil [Thu, 5 Sep 2019 19:18:15 +0000 (14:18 -0500)]
include/compat: add flags arg to pipe_cloexec

This matches pipe(2).

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agocommon/admin_socket: drop unused args
Sage Weil [Thu, 5 Sep 2019 17:57:40 +0000 (12:57 -0500)]
common/admin_socket: drop unused args

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #28569 from alimaredia/wip-rgw-ioctx-operate-replace
Ali Maredia [Tue, 1 Oct 2019 20:48:11 +0000 (16:48 -0400)]
Merge pull request #28569 from alimaredia/wip-rgw-ioctx-operate-replace

rgw: replace direct calls to ioctx.operate()

5 years agoMerge pull request #30655 from tchaikov/wip-cmake/crimson/pass-args
Kefu Chai [Tue, 1 Oct 2019 14:28:58 +0000 (22:28 +0800)]
Merge pull request #30655 from tchaikov/wip-cmake/crimson/pass-args

cmake: pass arguments to crimson tests

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
5 years agoMerge pull request #30613 from joke-lee/rgw-ceph-dencoder-add-RGWPeriodLatestEpochInfo
Casey Bodley [Tue, 1 Oct 2019 13:59:30 +0000 (09:59 -0400)]
Merge pull request #30613 from joke-lee/rgw-ceph-dencoder-add-RGWPeriodLatestEpochInfo

ceph-dencoder: add RGWPeriodLatestEpochInfo support.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agocmake: pass arguments to crimson tests 30655/head
Kefu Chai [Tue, 1 Oct 2019 09:29:16 +0000 (17:29 +0800)]
cmake: pass arguments to crimson tests

otherwise they will take all CPU cores and all memory

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #30587 from sebastian-philipp/python-common-readme
Sebastian Wagner [Tue, 1 Oct 2019 10:05:00 +0000 (12:05 +0200)]
Merge pull request #30587 from sebastian-philipp/python-common-readme

python-common: Add small Readme

Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
5 years agoMerge PR #30341 into master
Patrick Donnelly [Tue, 1 Oct 2019 08:21:16 +0000 (01:21 -0700)]
Merge PR #30341 into master

* refs/pull/30341/head:
cephfs-shell: better complain info, when deleting non-empty directory

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Varsha Rao <varao@redhat.com>
5 years agoMerge PR #30559 into master
Patrick Donnelly [Tue, 1 Oct 2019 08:17:53 +0000 (01:17 -0700)]
Merge PR #30559 into master

* refs/pull/30559/head:
mds: Reorganize class members in MDBalancer header

Reviewed-by: Jos Collin <jcollin@redhat.com>
5 years agoMerge PR #30580 into master
Patrick Donnelly [Tue, 1 Oct 2019 08:15:54 +0000 (01:15 -0700)]
Merge PR #30580 into master

* refs/pull/30580/head:
client: don't ceph_abort on bad llseek whence value
client: remove Inode dir_contacts field

Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #30407 from joscollin/wip-B41841-yes-really-mean-it
Ramana Raja [Tue, 1 Oct 2019 07:35:33 +0000 (13:05 +0530)]
Merge pull request #30407 from joscollin/wip-B41841-yes-really-mean-it

mgr/volumes: protection for `fs volume rm` command

5 years agoMerge PR #30552 into master
Patrick Donnelly [Tue, 1 Oct 2019 03:46:14 +0000 (20:46 -0700)]
Merge PR #30552 into master

* refs/pull/30552/head:
cmake: fix libtsan detection
test: librados startup/shutdown racer test

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
5 years agoMerge pull request #30630 from tchaikov/wip-build-on-centos8
Kefu Chai [Tue, 1 Oct 2019 02:57:16 +0000 (10:57 +0800)]
Merge pull request #30630 from tchaikov/wip-build-on-centos8

install-deps,rpm,do_cmake: build on RHEL/CentOS 8

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
5 years agoMerge pull request #30531 from alimaredia/wip-rgw-maven-version-update
Kefu Chai [Tue, 1 Oct 2019 02:45:23 +0000 (10:45 +0800)]
Merge pull request #30531 from alimaredia/wip-rgw-maven-version-update

qa: bump maven repo version in s3a_hadoop.py

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #30615 from xiexingguo/wip-progress-time-remaining
Xie Xingguo [Tue, 1 Oct 2019 01:07:29 +0000 (09:07 +0800)]
Merge pull request #30615 from xiexingguo/wip-progress-time-remaining

mgr/progress: estimated remaining time for events

Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #30591 from xiexingguo/wip-balancer-throttler
Xie Xingguo [Mon, 30 Sep 2019 23:42:25 +0000 (07:42 +0800)]
Merge pull request #30591 from xiexingguo/wip-balancer-throttler

mgr/balancer: upmap_max_iterations -> upmap_max_optimizations; behave as it is per pool

Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #29674 from athanatos/sjust/wip-fio-trace
Samuel Just [Mon, 30 Sep 2019 21:15:31 +0000 (14:15 -0700)]
Merge pull request #29674 from athanatos/sjust/wip-fio-trace

os/bluestore: expand lttng tracepoints, improve fio_ceph_objectstore backend

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agocls: CLS_CLIET_HIDE_IOCTX changes in cls headers 28569/head
Ali Maredia [Fri, 30 Aug 2019 21:13:47 +0000 (17:13 -0400)]
cls: CLS_CLIET_HIDE_IOCTX changes in cls headers

Signed-off-by: Ali Maredia <amaredia@redhat.com>
5 years agorgw: various ioctx.operate refactoring changes
Ali Maredia [Thu, 29 Aug 2019 19:27:43 +0000 (15:27 -0400)]
rgw: various ioctx.operate refactoring changes

- remove unused #include for cls_client headers
- refactor cls_timeindex_trim call in
rgw_object_expirer_core.cc
- add more CLS_CLIENT_HIDE_IOCTX in header files
- move target_compile_definitions to rgw_a target
- make repeat cls helper functions static

Signed-off-by: Ali Maredia <amaredia@redhat.com>
5 years agorgw: overload cls_rgw functions that do io_ctx.operate()
Ali Maredia [Wed, 12 Jun 2019 22:36:27 +0000 (18:36 -0400)]
rgw: overload cls_rgw functions that do io_ctx.operate()

Call the new overloaded functions and call
rgw_rados_operate after them.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
5 years agocls: remove unused cls_rgw_reshard_get_head()
Ali Maredia [Wed, 12 Jun 2019 15:40:26 +0000 (11:40 -0400)]
cls: remove unused cls_rgw_reshard_get_head()

Signed-off-by: Ali Maredia <amaredia@redhat.com>
5 years agorgw: replace ioctx.operate() with rgw_rados_operate()
Ali Maredia [Fri, 7 Jun 2019 12:54:23 +0000 (08:54 -0400)]
rgw: replace ioctx.operate() with rgw_rados_operate()

For all operate calls in:
rgw_op.cc
rgw_orphan.cc
rgw_reshard.cc
rgw_rados.cc

Signed-off-by: Ali Maredia <amaredia@redhat.com>
5 years agocmake: fix libtsan detection 30552/head
Jeff Layton [Mon, 30 Sep 2019 17:54:13 +0000 (13:54 -0400)]
cmake: fix libtsan detection

This variable is case-sensitive.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
5 years agoMerge pull request #30620 from votdev/issue_42069_validate_bucket_name
Lenz Grimmer [Mon, 30 Sep 2019 13:51:44 +0000 (13:51 +0000)]
Merge pull request #30620 from votdev/issue_42069_validate_bucket_name

mgr/dashboard: Bucket names cannot be formatted as IP address

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Kai Wagner <kwagner@suse.com>
5 years agoMerge pull request #30647 from s0nea/wip-dashboard-fix-typo
Lenz Grimmer [Mon, 30 Sep 2019 13:44:40 +0000 (13:44 +0000)]
Merge pull request #30647 from s0nea/wip-dashboard-fix-typo

mgr/dashboard: fix small typos in description message

Reviewed-by: Tiago Melo <tmelo@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
5 years agoMerge pull request #29925 from sebastian-philipp/run_tox-overwrite-build-dir
Kefu Chai [Mon, 30 Sep 2019 13:18:43 +0000 (21:18 +0800)]
Merge pull request #29925 from sebastian-philipp/run_tox-overwrite-build-dir

script/run_tox.sh: Don't overwrite the build dir

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agomgr/dashboard: fix two small typos 30647/head
Tatjana Dehler [Mon, 30 Sep 2019 11:59:48 +0000 (13:59 +0200)]
mgr/dashboard: fix two small typos

Remove unnecessary blanks.

Signed-off-by: Tatjana Dehler <tdehler@suse.com>
5 years agoscript/run_tox.sh: Don't overwrite the Ceph's bulid dir 29925/head
Sebastian Wagner [Tue, 27 Aug 2019 08:36:43 +0000 (10:36 +0200)]
script/run_tox.sh: Don't overwrite the Ceph's bulid dir

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #30639 from tchaikov/wip-crimson-readable
Kefu Chai [Mon, 30 Sep 2019 09:51:04 +0000 (17:51 +0800)]
Merge pull request #30639 from tchaikov/wip-crimson-readable

crimson/osd: implement readable/lease related methods

Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #30644 from majianpeng/osd-remove-unused-func
Xie Xingguo [Mon, 30 Sep 2019 09:01:44 +0000 (17:01 +0800)]
Merge pull request #30644 from majianpeng/osd-remove-unused-func

osd: remove unused function

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #30632 from xiexingguo/wip-kick-recovery-pri
Xie Xingguo [Mon, 30 Sep 2019 08:59:55 +0000 (16:59 +0800)]
Merge pull request #30632 from xiexingguo/wip-kick-recovery-pri

osd/PrimaryLogPG: always use strict priority ordering for kicked recovery ops

Reviewed-by: Yan Jun <yan.jun8@zte.com.cn>
Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #30642 from Rjerk/wip-fix-doc
Kefu Chai [Mon, 30 Sep 2019 08:53:51 +0000 (16:53 +0800)]
Merge pull request #30642 from Rjerk/wip-fix-doc

doc/radosgw: fix typos

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoosd/PrimaryLogPG: add closing ")" in log 30639/head
Kefu Chai [Sun, 29 Sep 2019 17:19:43 +0000 (01:19 +0800)]
osd/PrimaryLogPG: add closing ")" in log

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agocrimson/osd/pg: implement schedule_renew_lease()
Kefu Chai [Sun, 29 Sep 2019 17:19:07 +0000 (01:19 +0800)]
crimson/osd/pg: implement schedule_renew_lease()

see also d883db70282c406edaceb72a90ecddccd97a0161

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agocrimson/osd: implement ShardServices::get_hb_stamps()
Kefu Chai [Mon, 30 Sep 2019 08:20:37 +0000 (16:20 +0800)]
crimson/osd: implement ShardServices::get_hb_stamps()

PeeringState::proc_lease() requires a valid hb_stamps[0], which is in
turned maintained by `pl`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agocrimson/osd/pg: implement queue_check_readable() and recheck_readable()
Kefu Chai [Sun, 29 Sep 2019 17:11:42 +0000 (01:11 +0800)]
crimson/osd/pg: implement queue_check_readable() and recheck_readable()

see also 7aec060e0aff4588ff51f744dd194d1c0f7793c2

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agocommon/ceph_time: do not handle negative case
Kefu Chai [Sun, 29 Sep 2019 17:08:52 +0000 (01:08 +0800)]
common/ceph_time: do not handle negative case

this change partially reverts 353a0e5f, unlike `signedspan`,
`timespan::rep` is unsigned. so no need to handle negative case.

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agomgr/dashboard: Bucket names cannot be formatted as IP address 30620/head
Volker Theile [Fri, 27 Sep 2019 11:04:48 +0000 (13:04 +0200)]
mgr/dashboard: Bucket names cannot be formatted as IP address

In general, bucket names should follow domain name constraints:
- Bucket names must be unique.
- Bucket names cannot be formatted as IP address.
- Bucket names can be between 3 and 63 characters long.
- Bucket names must not contain uppercase characters or underscores.
- Bucket names must start with a lowercase letter or number.
- Bucket names must be a series of one or more labels. Adjacent labels are separated by a single period (.). Bucket names can contain lowercase letters, numbers, and hyphens. Each label must start and end with a lowercase letter or a number.

Fixes: https://tracker.ceph.com/issues/42069
Signed-off-by: Volker Theile <vtheile@suse.com>
5 years agoosd: remove unused function 30644/head
Jianpeng Ma [Mon, 30 Sep 2019 05:38:27 +0000 (13:38 +0800)]
osd: remove unused function

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
5 years agoMerge PR #30396 into master
Patrick Donnelly [Mon, 30 Sep 2019 04:05:02 +0000 (21:05 -0700)]
Merge PR #30396 into master

* refs/pull/30396/head:
doc: document mds journaling

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge PR #30463 into master
Patrick Donnelly [Mon, 30 Sep 2019 04:02:56 +0000 (21:02 -0700)]
Merge PR #30463 into master

* refs/pull/30463/head:
vstart_runner: allow the use of it with kernel mounts

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agodoc/radosgw: fix typo 30642/head
Liu Lan [Mon, 30 Sep 2019 03:16:40 +0000 (11:16 +0800)]
doc/radosgw: fix typo

Signed-off-by: Liu Lan <liulan@umcloud.com>
5 years agomgr/progress: estimated remaining time for events 30615/head
xie xingguo [Fri, 27 Sep 2019 08:04:05 +0000 (16:04 +0800)]
mgr/progress: estimated remaining time for events

Fixes: https://tracker.ceph.com/issues/40419
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #30638 from uweigand/cmake-atomic-16byte
Kefu Chai [Sun, 29 Sep 2019 17:26:09 +0000 (01:26 +0800)]
Merge pull request #30638 from uweigand/cmake-atomic-16byte

cmake: Test for 16-byte atomic support on IBM Z

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agocmake: Test for 16-byte atomic support on IBM Z 30638/head
Ulrich Weigand [Sun, 29 Sep 2019 14:22:52 +0000 (16:22 +0200)]
cmake: Test for 16-byte atomic support on IBM Z

On IBM Z the Boost tagged pointer implementation cannot use
"pointer compression" as there are no unused bits in an address;
the whole 64-bit address space is available to user space code.

Instead, Boost uses 16-byte atomics.  This is always supported
on IBM Z, but depending on the particular compiler (version)
it may require linking against libatomic.  The existing checks
in CheckCxxAtomic.cmake do not catch this, however, as they only
test for (up to) 8-byte atomic support.

Fixed by adding a test for 16-byte atomic support on IBM Z.

Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
5 years agoMerge pull request #30617 from xiexingguo/wip-weird-daemon-key
Kefu Chai [Sun, 29 Sep 2019 10:11:40 +0000 (18:11 +0800)]
Merge pull request #30617 from xiexingguo/wip-weird-daemon-key

mgr: fix weird health-alert daemon key

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agomgr: fix weird health-alert daemon key 30617/head
xie xingguo [Sun, 29 Sep 2019 06:15:07 +0000 (14:15 +0800)]
mgr: fix weird health-alert daemon key

Was:
  19 slow ops, oldest one blocked for 34 sec, daemons [osd,2,osd,4] have slow ops.

Now:
  153 slow ops, oldest one blocked for 38 sec, daemons [osd.3,osd.4,osd.5] have slow ops.

Fixes: https://tracker.ceph.com/issues/42079
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #29236 from liewegas/wip-read-hole-bypg
Kefu Chai [Sun, 29 Sep 2019 06:39:32 +0000 (14:39 +0800)]
Merge pull request #29236 from liewegas/wip-read-hole-bypg

osd: implement per-pg leases to avoid stale reads

Reviewed-by: Samuel Just <sjust@redhat.com>
5 years agoosd/PrimaryLogPG: always use strict priority ordering for kicked recovery ops 30632/head
xie xingguo [Sun, 29 Sep 2019 05:50:37 +0000 (13:50 +0800)]
osd/PrimaryLogPG: always use strict priority ordering for kicked recovery ops

See 590c4979d40ea2073da8180140303ac067d87cc4 for the background of
this change.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #30527 from uweigand/bloom-filter-endian
Kefu Chai [Sun, 29 Sep 2019 06:04:19 +0000 (14:04 +0800)]
Merge pull request #30527 from uweigand/bloom-filter-endian

common/bloom_filter: Fix endian issues

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #30616 from ifed01/wip-ifed-fix-fsck
Kefu Chai [Sun, 29 Sep 2019 05:41:11 +0000 (13:41 +0800)]
Merge pull request #30616 from ifed01/wip-ifed-fix-fsck

os/bluestore: fix invalid stray shared blob detection in fsck.

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #30625 from tchaikov/wip-42087
Kefu Chai [Sun, 29 Sep 2019 05:38:27 +0000 (13:38 +0800)]
Merge pull request #30625 from tchaikov/wip-42087

mgr/BaseMgrStandbyModule: drop GIL in ceph_get_module_option()

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoRevert "osd: give recovery ops initialized by client op a higher priority"
xie xingguo [Sun, 29 Sep 2019 01:57:22 +0000 (09:57 +0800)]
Revert "osd: give recovery ops initialized by client op a higher priority"

This reverts commit c0f87e0f91539d4d12dad5bddf95a97457a21c67.

The 'osd_op_queue_cut_off' config option determines which level of
high priority ops should use strict priority ordering and may change
from time to time. Since the main strategy of 'osd_kick_recovery_op_priority'
is to simply follow up 'osd_op_queue_cut_off', we can instead make a direct
use of 'osd_op_queue_cut_off' to achieve the same thing explicitly.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoceph-dencoder: add RGWPeriodLatestEpochInfo support. 30613/head
yuliyang [Fri, 27 Sep 2019 07:39:15 +0000 (15:39 +0800)]
ceph-dencoder: add RGWPeriodLatestEpochInfo support.

Signed-off-by: yuliyang <yuliyang@cmss.chinamobile.com>
5 years agocrimson/osd: fix osdpg build 29236/head
Sage Weil [Sat, 28 Sep 2019 16:51:09 +0000 (11:51 -0500)]
crimson/osd: fix osdpg build

These are stubs; the reschule one (at minimum) probably needs a meaningful
implementation in order for the PG to peer in some cases.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agodoc: document new 'laggy' and 'wait' pg states
Sage Weil [Fri, 27 Sep 2019 21:53:54 +0000 (16:53 -0500)]
doc: document new 'laggy' and 'wait' pg states

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agodoc: stale reads notes
Sage Weil [Sat, 17 May 2014 00:40:57 +0000 (17:40 -0700)]
doc: stale reads notes

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: skip wait state if osd set is empty
Sage Weil [Tue, 24 Sep 2019 17:05:24 +0000 (12:05 -0500)]
osd/PeeringState: skip wait state if osd set is empty

If there are no down OSDs from prior intervals, then the normal peering
process will end up contacting all of the prior OSDs and ensuring that
their prior interval is terminated during peering.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: make proc_lease, recalc_readable_until more verbose
Sage Weil [Tue, 24 Sep 2019 16:39:41 +0000 (11:39 -0500)]
osd/PeeringState: make proc_lease, recalc_readable_until more verbose

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd: is_replica() -> is_nonprimary()
Sage Weil [Mon, 23 Sep 2019 19:46:07 +0000 (14:46 -0500)]
osd: is_replica() -> is_nonprimary()

The 'replica' term does not map well onto EC pools.  More importantly,
the implementation is often wrong for EC pools, where role may be 0 or 1
for EC pools independent of whether the OSD is the primary or not.

Introduce 'nonprimary' to mean an acting osd that is not the primary.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: piggyback pg_lease on MOSDPGLog
Sage Weil [Tue, 6 Aug 2019 03:22:15 +0000 (22:22 -0500)]
osd/PeeringState: piggyback pg_lease on MOSDPGLog

We only do this for primary -> replica, so we only need to proc_lease()
from the replica states.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: piggyback lease and ack on activation messages
Sage Weil [Tue, 6 Aug 2019 22:04:44 +0000 (17:04 -0500)]
osd/PeeringState: piggyback lease and ack on activation messages

The lease goes out with the MOSDPGLog or info, and the ack comes back with
the info.

We no longer need to renew the lease explicitly in
all_activated_and_committed() because we *just* piggybacked on activation.
We can just wait for the normal renew event to fire.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: renew before activate messages; send after activated
Sage Weil [Tue, 6 Aug 2019 03:05:38 +0000 (22:05 -0500)]
osd/PeeringState: renew before activate messages; send after activated

We want to renew before we prepeare or send activate messages so that we
have the opportunity to include leases in them (coming soon!).

And we do not want to send explicit lease messages until we know that the
peers have activate.  In particular, we want to avoid queueing a notify
(via pending_activators) and then sending a lease that will arrive before
it.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: notice 'dead' prior_readable OSDs
Sage Weil [Mon, 15 Jul 2019 21:14:14 +0000 (16:14 -0500)]
osd/PeeringState: notice 'dead' prior_readable OSDs

If we see that a prior_readable_down_osd is known to be dead, we can
remove it from the set.  And if the set is empty, we can skip the rest of
our waiting period and leave the WAIT state.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoosd/PeeringState: track down OSDs relevant to prior_readable_until_ub
Sage Weil [Tue, 23 Jul 2019 19:07:59 +0000 (14:07 -0500)]
osd/PeeringState: track down OSDs relevant to prior_readable_until_ub

Keep track of which OSDs from the prior set we care about that affect
the prior_readable_until_ub.  Note that it is only the *down* OSDs that
we have to track here, since everything in the *probe* set we will already
contact during peering (they are still up), guaranteeing that those PGs
are aware of the interval change and are no longer readable in the prior
interval.

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agoqa/suites/rados/singleton-nomsg/osd_stale_reads.yaml
Sage Weil [Tue, 16 Jul 2019 18:50:28 +0000 (13:50 -0500)]
qa/suites/rados/singleton-nomsg/osd_stale_reads.yaml

Signed-off-by: Sage Weil <sage@redhat.com>
5 years agodo_cmake.sh: disable amqp and rdma on RHEL/CentOS 8 30630/head
Kefu Chai [Sat, 28 Sep 2019 14:19:08 +0000 (22:19 +0800)]
do_cmake.sh: disable amqp and rdma on RHEL/CentOS 8

RHEL/CentOS 8 does not offer librabbitmq-devel, libibverbs-devel and
librdmacm-devel at this moment. so disable these features now.

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agodo_cmake.sh: set WITH_RADOSGW_AMQP_ENDPOINT using ARGS
Kefu Chai [Sat, 28 Sep 2019 14:15:15 +0000 (22:15 +0800)]
do_cmake.sh: set WITH_RADOSGW_AMQP_ENDPOINT using ARGS

so we can extend ARGS in a more unified way

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoceph.spec.in: disable "make check" for rhel8
Kefu Chai [Sat, 28 Sep 2019 14:01:31 +0000 (22:01 +0800)]
ceph.spec.in: disable "make check" for rhel8

following packages are not available on RHEL/CentOS 8, they are for
dashboard unit tests. so disable all python packages for dashboard
tests for now:

python-cherrypy
python-coverage
python-pecan
python-routes
python-tox
xmlsec1-devel

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoceph.spec.in: disable cephfs_java and amqp_endpoint if RHEL8
Kefu Chai [Sat, 28 Sep 2019 13:57:29 +0000 (21:57 +0800)]
ceph.spec.in: disable cephfs_java and amqp_endpoint if RHEL8

RHEL/CentOS 8 does not offer junit and sharutils yet, so disable
cephfs_java on rhel8 at this moment.

RHEL/CentOS 8 does not offer librabbitmq-devel yet, so disable
amqp_endpoint on rhel8 at this moment.

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoinstall-deps.sh: only install python-srpm-macros for required macros
Kefu Chai [Sat, 28 Sep 2019 13:34:06 +0000 (21:34 +0800)]
install-deps.sh: only install python-srpm-macros for required macros

the reason why we need to install these macros is to solve the
egg-chicken problem -- to set `_python_buildid` and `python3_pkgversion`
so that we can prepare the build dependencies and install them. in which,
`_python_buildid` is defined using `python3_pkgversion`. this macro is
offered by python-srpm-macros.

the other macros, like `python3_sitelib` and `__python3` are offered by
`python3-rpm-macros`.

this change also avoid the issue if we install `*rpm-macros` on CentOS8:

Error:
 Problem: package R-rpm-macros-1.1.0-2.el8.noarch requires /usr/bin/Rscript, but none of the providers can be installed
  - package R-rpm-macros-1.1.0-2.el8.noarch requires R-core, but none of the providers can be installed
  - conflicting requests
  - nothing provides libRblas.so()(64bit) needed by R-core-3.6.1-1.el8.x86_64
  - nothing provides openblas-Rblas needed by R-core-3.6.1-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #30441 from anthonyeleven/master
Kefu Chai [Sat, 28 Sep 2019 08:05:05 +0000 (16:05 +0800)]
Merge pull request #30441 from anthonyeleven/master

osd: Change osd op queue cut off default to high

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #30581 from liewegas/wip-write-returns
Kefu Chai [Sat, 28 Sep 2019 08:03:11 +0000 (16:03 +0800)]
Merge pull request #30581 from liewegas/wip-write-returns

osd: allow rados write ops to return data and error codes

Reviewed-by: Samuel Just <sjust@redhat.com>