]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
5 years agomsg/async/ProtocolV2: store supported features instead of required
Ilya Dryomov [Mon, 20 Apr 2020 18:45:01 +0000 (20:45 +0200)]
msg/async/ProtocolV2: store supported features instead of required

We aren't interested in peer_required_features anywhere outside
_handle_peer_banner_payload() -- once we know there is no mismatch,
it's all about peer_supported_features.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/ProtocolV2: short circuit empty segments and epilogue
Ilya Dryomov [Mon, 11 May 2020 12:06:44 +0000 (14:06 +0200)]
msg/async/ProtocolV2: short circuit empty segments and epilogue

In both msgr2.0 and msgr2.1, segments can be empty.  In msgr2.1,
epilogue can be empty as well.

Handle both by calling the respective handler function directly
instead of allocating a buffer::ptr_node for an empty buffer and
passing that through READ[_RXBUF].

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: add initial unit tests
Ilya Dryomov [Thu, 7 May 2020 12:29:37 +0000 (14:29 +0200)]
msg/async/frames_v2: add initial unit tests

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/crypto_onwire: implement msgr2.1 nonce format
Ilya Dryomov [Mon, 27 Apr 2020 14:07:46 +0000 (16:07 +0200)]
msg/async/crypto_onwire: implement msgr2.1 nonce format

Move to a 64-bit counter to avoid wrapping and having to reset
the session before the counter repeats.  This is in line with NIST
Recommendation for GCM [1]:

  "... this Recommendation suggests, but does not require, that
  the leading (i.e., leftmost) 32 bits of the IV hold the fixed
  field; and that the trailing (i.e., rightmost) 64 bits hold the
  invocation field."

See commit bb61e6a5adc3 ("msg/async/ProtocolV2: avoid AES-GCM nonce
reuse vulnerabilities").

[1] https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: implement msgr2.1 wire format
Ilya Dryomov [Thu, 7 May 2020 09:32:52 +0000 (11:32 +0200)]
msg/async/frames_v2: implement msgr2.1 wire format

Implement msgr2.1-crc and msgr2.1-secure modes.

Issues with existing msgr2.0-crc and msgr2.0-secure modes and
their resolution will be described in doc/dev/msgr2.rst.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: rename and clarify FRAME_FLAGS_LATEABRT
Ilya Dryomov [Mon, 4 May 2020 15:52:13 +0000 (17:52 +0200)]
msg/async/frames_v2: rename and clarify FRAME_FLAGS_LATEABRT

Clarify that the frame can be aborted at any point after the
preamble and the first segment are put on the wire.  When that
happens, the remaining segments (including the data segment)
may be filled with zeros.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: rename epilogue structs
Ilya Dryomov [Mon, 4 May 2020 15:42:28 +0000 (17:42 +0200)]
msg/async/frames_v2: rename epilogue structs

In preparation for msgr2,1, rename epilogue structs:
epilogue_plain_block_t to epilogue_crc_rev0_block_t and
epilogue_secure_block_t to epilogue_secure_rev0_block_t
(rev0 stands for revision 0).

Also, get rid of size constants that just disguise the
struct type.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/ProtocolV2: fix l_msgr_recv_bytes calculation
Ilya Dryomov [Sat, 25 Apr 2020 10:51:16 +0000 (12:51 +0200)]
msg/async/ProtocolV2: fix l_msgr_recv_bytes calculation

l_msgr_recv_bytes calculation was never updated from msgr1.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/ProtocolV2: switch to FrameAssembler
Ilya Dryomov [Sat, 25 Apr 2020 09:44:47 +0000 (11:44 +0200)]
msg/async/ProtocolV2: switch to FrameAssembler

Factor out the disassembly code from ProtocolV2 and switch
ProtocolV2 to FrameAssembler.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: introduce FrameAssembler
Ilya Dryomov [Fri, 24 Apr 2020 16:01:46 +0000 (18:01 +0200)]
msg/async/frames_v2: introduce FrameAssembler

Start separating frame assembly and disassembly code from
frame sending, receiving and handling code, so that assembly
and disassembly pieces can be unit tested and hopefully also
shared between different messengers (e.g. crimson).

This commit factors out the assembly code from Frame.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/frames_v2: make rx_segments_t global
Ilya Dryomov [Thu, 30 Apr 2020 15:22:14 +0000 (17:22 +0200)]
msg/async/frames_v2: make rx_segments_t global

Use it in ProtocolV2.h and later in unit tests.

While at it, drop the unused len struct.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/ProtocolV2: session_stream_handlers doesn't need to be public
Ilya Dryomov [Tue, 14 Apr 2020 11:51:06 +0000 (13:51 +0200)]
msg/async/ProtocolV2: session_stream_handlers doesn't need to be public

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/ProtocolV2: adjust some douts
Ilya Dryomov [Tue, 14 Apr 2020 11:46:05 +0000 (13:46 +0200)]
msg/async/ProtocolV2: adjust some douts

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/crypto_onwire: perform decryption in place
Ilya Dryomov [Thu, 23 Apr 2020 17:51:55 +0000 (19:51 +0200)]
msg/async/crypto_onwire: perform decryption in place

OpenSSL supports in-place decryption so we can avoid
allocating potentially multi-megabyte and strictly aligned
buffer for each decryption operation.

ProtocolV2 actually gets the alignment wrong: after
read_frame_segment() allocates with cur_rx_desc.alignment,
handle_read_frame_segment() effectively replaces that with
segment_t::DEFAULT_ALIGNMENT.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/crypto_onwire: remove TxHandler::calculate_segment_size()
Ilya Dryomov [Fri, 3 Apr 2020 13:34:19 +0000 (15:34 +0200)]
msg/async/crypto_onwire: remove TxHandler::calculate_segment_size()

It is unused and doesn't make much sense in TxHandler.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/crypto_onwire: add asserts for reset_tx_handler() reservation
Ilya Dryomov [Fri, 3 Apr 2020 13:43:10 +0000 (15:43 +0200)]
msg/async/crypto_onwire: add asserts for reset_tx_handler() reservation

Add asserts to avoid bugs like the one fixed in 1a975fb3a801
("msg/async: fix unnecessary 4 kB allocation in secure mode.").

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agomsg/async/crypto_onwire: allow dynamic reset_tx_handler() sequences
Ilya Dryomov [Fri, 3 Apr 2020 13:26:18 +0000 (15:26 +0200)]
msg/async/crypto_onwire: allow dynamic reset_tx_handler() sequences

Provide an iterator-like interface as initializer lists cannot be
formed dynamically.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 years agorgw: reject control characters in response-header actions 34927/head
Robin H. Johnson [Fri, 27 Mar 2020 19:48:13 +0000 (20:48 +0100)]
rgw: reject control characters in response-header actions

S3 GetObject permits overriding response header values, but those inputs
need to be validated to insure only characters that are valid in an HTTP
header value are present.

Credit: Initial vulnerability discovery by William Bowling (@wcbowling)
Credit: Further vulnerability discovery by Robin H. Johnson <rjohnson@digitalocean.com>
Signed-off-by: Robin H. Johnson <rjohnson@digitalocean.com>
5 years agorgw: EPERM to ERR_INVALID_REQUEST
Abhishek Lekshmanan [Fri, 27 Mar 2020 18:29:01 +0000 (19:29 +0100)]
rgw: EPERM to ERR_INVALID_REQUEST

As per Robin's comments and S3 spec

Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
5 years agorgw: reject unauthenticated response-header actions
Matt Benjamin [Fri, 27 Mar 2020 17:13:48 +0000 (18:13 +0100)]
rgw: reject unauthenticated response-header actions

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit d8dd5e513c0c62bbd7d3044d7e2eddcd897bd400)

5 years agomsg/async/crypto_onwire: fix endianness of nonce_t
Ilya Dryomov [Fri, 6 Mar 2020 19:16:45 +0000 (20:16 +0100)]
msg/async/crypto_onwire: fix endianness of nonce_t

As a AES-GCM IV, nonce_t is implicitly shared between server and
client.  Currently, if their endianness doesn't match, they are unable
to communicate in secure mode because each gets its own idea of what
the next nonce should be after the counter is incremented.

Several RFCs state that the nonce counter should be BE, but since we
use LE for everything on-disk and on-wire, make it LE.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
5 years agomsg/async/ProtocolV2: avoid AES-GCM nonce reuse vulnerabilities
Ilya Dryomov [Fri, 6 Mar 2020 19:16:45 +0000 (20:16 +0100)]
msg/async/ProtocolV2: avoid AES-GCM nonce reuse vulnerabilities

The secure mode uses AES-128-GCM with 96-bit nonces consisting of a
32-bit counter followed by a 64-bit salt.  The counter is incremented
after processing each frame, the salt is fixed for the duration of
the session.  Both are initialized from the session key generated
during session negotiation, so the counter starts with essentially
a random value.  It is allowed to wrap, and, after 2**32 frames, it
repeats, resulting in nonce reuse (the actual sequence numbers that
the messenger works with are 64-bit, so the session continues on).

Because of how GCM works, this completely breaks both confidentiality
and integrity aspects of the secure mode.  A single nonce reuse reveals
the XOR of two plaintexts and almost completely reveals the subkey
used for producing authentication tags.  After a few nonces get used
twice, all confidentiality and integrity goes out the window and the
attacker can potentially encrypt-authenticate plaintext of their
choice.

We can't easily change the nonce format to extend the counter to
64 bits (and possibly XOR it with a longer salt).  Instead, just
remember the initial nonce and cut the session before it repeats,
forcing renegotiation.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #34086 from ivancich/wip-deprecate-orphans-find
J. Eric Ivancich [Tue, 5 May 2020 19:51:21 +0000 (15:51 -0400)]
Merge pull request #34086 from ivancich/wip-deprecate-orphans-find

rgw: deprecate radosgw-admin orphans sub-commands

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
5 years agoMerge pull request #33546 from matthewoliver/rgw_swift_404_anon
Casey Bodley [Tue, 5 May 2020 19:02:34 +0000 (15:02 -0400)]
Merge pull request #33546 from matthewoliver/rgw_swift_404_anon

rgw: anonomous swift to obj that dont exist should 401

Reviewed-by: Or Friedmann <ofriedma@redhat.com>
5 years agoMerge pull request #34896 from cbodley/wip-rgw-multisite-py3
Casey Bodley [Tue, 5 May 2020 18:59:40 +0000 (14:59 -0400)]
Merge pull request #34896 from cbodley/wip-rgw-multisite-py3

test/rgw: py3 fixes for multisite tests

Reviewed-by: Yuval Lifshitz <yuvalif@yahoo.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agorgw: deprecate radosgw-admin orphans sub-commands 34086/head
J. Eric Ivancich [Fri, 20 Mar 2020 15:20:10 +0000 (11:20 -0400)]
rgw: deprecate radosgw-admin orphans sub-commands

The orphans sub-commands have not been maintained for years and it's
unclear whether they're reliable. Additionally, they store logs on the
cluster, so if a user wants to run it to address a nearly full
cluster, it could push the user over the edge. As a result the
(currently experimental) `rgw-orphan-list` tool (separate executable
rather than a sub-command) has been created, which stores intermediate
results on the local filesystem.

Now all three orphans sub-commands produce a warning (on cerr) that
the command is being deprecated. Additionally all three now require
the --yes-i-really-mean-it command-line option to run.

This also documents the "bucket radoslist" sub-command to
`radosgw-admin` in its corresponding man page, a change that was
omitted from the prior commit that added "bucket radoslist"
documentation.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agoMerge PR #34911 into master
Patrick Donnelly [Tue, 5 May 2020 17:58:32 +0000 (10:58 -0700)]
Merge PR #34911 into master

* refs/pull/34911/head:
qa: move fsx deps into common cephfs install yaml

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
5 years agoMerge pull request #34287 from ofriedma/wip-ofriedma-anon
Casey Bodley [Tue, 5 May 2020 17:56:23 +0000 (13:56 -0400)]
Merge pull request #34287 from ofriedma/wip-ofriedma-anon

rgw: fix rgw tries to fetch anonymous user

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoqa: move fsx deps into common cephfs install yaml 34911/head
Patrick Donnelly [Tue, 5 May 2020 16:25:07 +0000 (09:25 -0700)]
qa: move fsx deps into common cephfs install yaml

The double install task causes errors during unwind.

Fixes: fe3961fc36e4d0af896fe140ba2450e1556ab563
Fixes: https://tracker.ceph.com/issues/45387
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agovstart: remove commented-out vault config options 34896/head
Casey Bodley [Mon, 4 May 2020 20:45:04 +0000 (16:45 -0400)]
vstart: remove commented-out vault config options

we don't have any vstart automation for rgw encryption with vault. if
anyone wants to do local testing, they can follow instructions in
the documentation

Signed-off-by: Casey Bodley <cbodley@redhat.com>
5 years agotest/rgw: Cluster.admin() returns output as utf-8 str
Casey Bodley [Mon, 4 May 2020 20:39:59 +0000 (16:39 -0400)]
test/rgw: Cluster.admin() returns output as utf-8 str

fixes the TypeError:

  File "rgw_multi/tests.py", line 1107, in test_bucket_sync_disable
    check_buckets_sync_status_obj_not_exist(zone, buckets)
  File "rgw_multi/tests.py", line 438, in check_buckets_sync_status_obj_not_exist
    if log_list.find(':'+bucket+":") >= 0:
TypeError: argument should be integer or bytes-like object, not 'str'

Signed-off-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34894 from yuriw/wip-yuriw-distro-master
Yuri Weinstein [Tue, 5 May 2020 15:31:32 +0000 (08:31 -0700)]
Merge pull request #34894 from yuriw/wip-yuriw-distro-master

qa/tests: replaced ubuntu_latest.yaml with ubuntu 20.04

5 years agoMerge pull request #34856 from jschmid1/cephadm_osdspec_affinity
Sebastian Wagner [Tue, 5 May 2020 14:00:12 +0000 (16:00 +0200)]
Merge pull request #34856 from jschmid1/cephadm_osdspec_affinity

mgr/cephadm: add support for proper osd daemon tracking

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34773 from ricardoasmarques/cephadm-shell-mount
Sebastian Wagner [Tue, 5 May 2020 08:57:05 +0000 (10:57 +0200)]
Merge pull request #34773 from ricardoasmarques/cephadm-shell-mount

cephadm: Add shell '--mount' option to mount host file or directory

Reviewed-by: Matthew Oliver <moliver@suse.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34703 from SUSE/wip-fix-45129
Sebastian Wagner [Tue, 5 May 2020 08:55:45 +0000 (10:55 +0200)]
Merge pull request #34703 from SUSE/wip-fix-45129

cephadm: Add `chown` to unit.run for adoped simple OSDs

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34778 from mgfritch/cephadm-dd-service-id
Sebastian Wagner [Tue, 5 May 2020 08:40:24 +0000 (10:40 +0200)]
Merge pull request #34778 from mgfritch/cephadm-dd-service-id

mgr/orch: service_id can contain a '.' char (mds, nfs, iscsi)

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34814 from mgfritch/cephadm-iscsi-apply
Sebastian Wagner [Tue, 5 May 2020 08:38:26 +0000 (10:38 +0200)]
Merge pull request #34814 from mgfritch/cephadm-iscsi-apply

mgr/orch: fix `orch apply iscsi`

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34658 from matthewoliver/cephadm_iscsi_ssl
Sebastian Wagner [Tue, 5 May 2020 08:37:07 +0000 (10:37 +0200)]
Merge pull request #34658 from matthewoliver/cephadm_iscsi_ssl

cephadm: Make ceph-iscsi SSL aware

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoMerge pull request #34745 from cybozu/cephadm-fix-the-hang-up-on-creating-encrypted-osd
Sebastian Wagner [Tue, 5 May 2020 08:00:45 +0000 (10:00 +0200)]
Merge pull request #34745 from cybozu/cephadm-fix-the-hang-up-on-creating-encrypted-osd

cephadm: fix the hang-up of cryptsetup on creating encrypted OSD

Reviewed-by: Sage Weil <sage@redhat.com>
5 years agoMerge pull request #34660 from majianpeng/bluestore-pmemdevice
Kefu Chai [Tue, 5 May 2020 04:59:50 +0000 (12:59 +0800)]
Merge pull request #34660 from majianpeng/bluestore-pmemdevice

os/bluestore: avoid offset overflow.

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34837 from sseshasa/wip-mon-memory-target-fix
Kefu Chai [Tue, 5 May 2020 04:48:43 +0000 (12:48 +0800)]
Merge pull request #34837 from sseshasa/wip-mon-memory-target-fix

mon/OSDMonitor: Always tune priority cache manager memory on all mons

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34788 from yuvalif/cls_q_has_empty_markers
Kefu Chai [Tue, 5 May 2020 04:47:27 +0000 (12:47 +0800)]
Merge pull request #34788 from yuvalif/cls_q_has_empty_markers

cls/queue: fix empty markers when listing entries

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agomgr/orch: match last occurance of hostname in service_id 34778/head
Michael Fritch [Mon, 27 Apr 2020 17:44:44 +0000 (11:44 -0600)]
mgr/orch: match last occurance of hostname in service_id

The RGW realm/zone might have a substr that matches the hostname

Fixes: https://tracker.ceph.com/issues/45294
Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agomgr/cephadm: use keyword instead of positional args
Michael Fritch [Mon, 27 Apr 2020 17:42:26 +0000 (11:42 -0600)]
mgr/cephadm: use keyword instead of positional args

Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agomgr/cephadm: get service_name from DaemonDescription
Michael Fritch [Mon, 27 Apr 2020 17:42:11 +0000 (11:42 -0600)]
mgr/cephadm: get service_name from DaemonDescription

use the shared logic in the DaemonDescription class

Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agomgr/orch: allow '.' chars in the service_id
Michael Fritch [Mon, 27 Apr 2020 17:41:50 +0000 (11:41 -0600)]
mgr/orch: allow '.' chars in the service_id

service_id can contain a '.' char (mds, nfs, iscsi)

Fixes: https://tracker.ceph.com/issues/45293
Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agoqa/tests: replaced ubuntu_latest.yaml with ubuntu 20.04 34894/head
Yuri Weinstein [Mon, 4 May 2020 16:46:38 +0000 (09:46 -0700)]
qa/tests: replaced ubuntu_latest.yaml with ubuntu 20.04

... so all tests for `pacific` will be tested on the latest ubuntu version

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
5 years agotest/rgw: SystemObject.json_command no longer trims json output
Casey Bodley [Mon, 4 May 2020 20:38:34 +0000 (16:38 -0400)]
test/rgw: SystemObject.json_command no longer trims json output

this was a workaround for 'period commit' commands that used to write
the "Sending period to new master zone" line to stdout

Signed-off-by: Casey Bodley <cbodley@redhat.com>
5 years agoradosgw-admin: period commit writes messages to stderr
Casey Bodley [Mon, 4 May 2020 20:36:16 +0000 (16:36 -0400)]
radosgw-admin: period commit writes messages to stderr

the period's json output is written to stdout. any other messages should
be written to stderr

Signed-off-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34148 from ivancich/octopus-rados-list
J. Eric Ivancich [Mon, 4 May 2020 19:27:21 +0000 (15:27 -0400)]
Merge pull request #34148 from ivancich/octopus-rados-list

rgw: add `rgw-orphan-list` tool & `radosgw-admin bucket radoslist ...`

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agodoc/mgr/orchestrator: update iscsi 34814/head
Michael Fritch [Wed, 29 Apr 2020 00:03:35 +0000 (18:03 -0600)]
doc/mgr/orchestrator: update iscsi

`apply iscsi` and `add iscsi` are implemented in cephadm

Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agomgr/orch: add iscsi apply cli
Michael Fritch [Tue, 28 Apr 2020 23:57:34 +0000 (17:57 -0600)]
mgr/orch: add iscsi apply cli

`$ ceph orch apply iscsi --pool <pool>`

Signed-off-by: Michael Fritch <mfritch@suse.com>
5 years agomgr/cephadm: _apply_service: fix _create_iscsi invocation
Sebastian Wagner [Tue, 21 Apr 2020 11:02:57 +0000 (13:02 +0200)]
mgr/cephadm: _apply_service: fix _create_iscsi invocation

Fixes: https://tracker.ceph.com/issues/45249
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
5 years agoqa/rgw: integration test for `rgw-orphan-list` & `radosgw-admin radoslist` 34148/head
J. Eric Ivancich [Fri, 1 May 2020 20:42:15 +0000 (20:42 +0000)]
qa/rgw: integration test for `rgw-orphan-list` & `radosgw-admin radoslist`

Add teuthology test for `rgw-orphan-list` in a new tool suite under
rgw. It only needs to be tested under one configuration. And the new
tool sub-suite can be used by other tooling int he
future. radosgw-admin `radoslist` is tested indirectly through
`rgw-orphan-list` and therefore does not need its own test.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agoqa/rgw: allow the rgw teuthology task to capture/set dns names
J. Eric Ivancich [Tue, 21 Apr 2020 15:28:58 +0000 (15:28 +0000)]
qa/rgw: allow the rgw teuthology task to capture/set dns names

A teuthology workunit might want to use the rgw task, setting the
rgw-dns-name and/or rgw-dns-s3website-name configuration options to
the fully-qualified domain name. Existing code implies that setting
these configuration options to the empty string will do that. However
the current logic does not support that given it has Python
conditionals that treat the empty string as false. This fixes that.

Now the following teuthology tasks YAML will work as expected:

  tasks:
  - rgw:
      client.0:
        dns-name: ''
        dns-s3website-name: ''

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agotest/rgw: add static testing for `ceph-diff-sorted`
J. Eric Ivancich [Mon, 30 Mar 2020 21:00:44 +0000 (17:00 -0400)]
test/rgw: add static testing for `ceph-diff-sorted`

Tests are run during "make check".

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agodoc/rgw: add docs for `rgw-orphan-list` and `ceph-diff-sorted`
J. Eric Ivancich [Wed, 25 Mar 2020 17:39:51 +0000 (13:39 -0400)]
doc/rgw: add docs for `rgw-orphan-list` and `ceph-diff-sorted`

Add man pages and documentation for both tools.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agorgw: add `rgw-orphan-list` tool & `radosgw-admin bucket radoslist ...`
J. Eric Ivancich [Wed, 18 Sep 2019 22:25:50 +0000 (18:25 -0400)]
rgw: add `rgw-orphan-list` tool & `radosgw-admin bucket radoslist ...`

Adds a `radosgw-admin` subcommand and walks the associated bucket
indices and manifests to generate the list of rados objects that
represent the rgw objects in the bucket(s).

Also adds a tool named `rgw-orphan-list`, which uses the radoslist
subcommand, that produces a list in a local file of what appear to be
rgw orphans.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agorgw: add const-correctness to rgw_obj_manifest and svc_tier_rados
J. Eric Ivancich [Tue, 24 Mar 2020 16:02:00 +0000 (12:02 -0400)]
rgw: add const-correctness to rgw_obj_manifest and svc_tier_rados

Mark functions as "const" or function parameters as "const" in order
to make those functions more widely callable.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agoMerge pull request #34172 from cbodley/wip-44751
Casey Bodley [Mon, 4 May 2020 16:30:18 +0000 (12:30 -0400)]
Merge pull request #34172 from cbodley/wip-44751

radosgw-admin: fix infinite loops in 'datalog list'

5 years agoMerge pull request #34286 from cbodley/wip-qa-rgw-cls-2pc-queue
Casey Bodley [Mon, 4 May 2020 16:29:14 +0000 (12:29 -0400)]
Merge pull request #34286 from cbodley/wip-qa-rgw-cls-2pc-queue

qa/rgw: run ceph_test_cls_2pc_queue in verify suite

Reviewed-by: Yuval Lifshitz <yuvalif@yahoo.com>
5 years agoMerge pull request #29062 from zhangsw/rgw-reshard-stats
Casey Bodley [Mon, 4 May 2020 16:28:21 +0000 (12:28 -0400)]
Merge pull request #29062 from zhangsw/rgw-reshard-stats

rgw: add check for index entry's existing when adding bucket stats during bucket reshard.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agoMerge pull request #34892 from ivancich/wip-fix-tests_ps
J. Eric Ivancich [Mon, 4 May 2020 16:10:18 +0000 (12:10 -0400)]
Merge pull request #34892 from ivancich/wip-fix-tests_ps

qa/rgw: fix issue error in tests_ps.py

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoqa/rgw: fix issue error in tests_ps.py 34892/head
J. Eric Ivancich [Mon, 4 May 2020 15:35:25 +0000 (11:35 -0400)]
qa/rgw: fix issue error in tests_ps.py

The Python interpreter on teuthology complains about the lack of
parens in a print statement.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
5 years agocephadm: Add '--mount' option to mount host file or directory 34773/head
Ricardo Marques [Mon, 27 Apr 2020 14:11:56 +0000 (15:11 +0100)]
cephadm: Add '--mount' option to mount host file or directory

Fixes: https://tracker.ceph.com/issues/45284
Signed-off-by: Ricardo Marques <rimarques@suse.com>
5 years agoMerge PR #34088 into master
Patrick Donnelly [Mon, 4 May 2020 13:44:39 +0000 (06:44 -0700)]
Merge PR #34088 into master

* refs/pull/34088/head:
doc: mailmap: changes for octopus release

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
5 years agoMerge pull request #34436 from jschmid1/dg_affinity
Jan Fajerski [Mon, 4 May 2020 12:15:15 +0000 (14:15 +0200)]
Merge pull request #34436 from jschmid1/dg_affinity

ceph-volume: add ceph.osdspec_affinity tag

5 years agoMerge pull request #34867 from tspmelo/wip-fix-table-filter
Lenz Grimmer [Mon, 4 May 2020 10:18:19 +0000 (12:18 +0200)]
Merge pull request #34867 from tspmelo/wip-fix-table-filter

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
5 years agopython-common: do not pass affinity to ceph_volume when None 34856/head
Joshua Schmid [Thu, 30 Apr 2020 13:27:49 +0000 (15:27 +0200)]
python-common: do not pass affinity to ceph_volume when None

Signed-off-by: Joshua Schmid <jschmid@suse.de>
5 years agomgr/cephadm: add support for proper osd daemon tracking
Joshua Schmid [Thu, 30 Apr 2020 09:47:22 +0000 (11:47 +0200)]
mgr/cephadm: add support for proper osd daemon tracking

Signed-off-by: Joshua Schmid <jschmid@suse.de>
5 years agoMerge pull request #34779 from mgfritch/cephadm-workunit-node-exporter-avail
Sebastian Wagner [Mon, 4 May 2020 09:11:32 +0000 (11:11 +0200)]
Merge pull request #34779 from mgfritch/cephadm-workunit-node-exporter-avail

qa/workunits/cephadm/test_cephadm.sh: wait longer for monitoring stack

5 years agoMerge pull request #34728 from ricardoasmarques/infer-config
Sebastian Wagner [Mon, 4 May 2020 09:11:01 +0000 (11:11 +0200)]
Merge pull request #34728 from ricardoasmarques/infer-config

cephadm: Infer config on "cephadm shell"

5 years agoMerge pull request #34723 from matthewoliver/cephadm_iscsi_remove_fqdn_enabled
Sebastian Wagner [Mon, 4 May 2020 09:09:05 +0000 (11:09 +0200)]
Merge pull request #34723 from matthewoliver/cephadm_iscsi_remove_fqdn_enabled

cephadm: remove fqdn_enabled from ceph-iscsi

Reviewed-by: Michael Fritch <mfritch@suse.com>
5 years agoMerge pull request #34448 from Devp00l/wip-44621
Lenz Grimmer [Mon, 4 May 2020 08:51:18 +0000 (10:51 +0200)]
Merge pull request #34448 from Devp00l/wip-44621

Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
5 years agoMerge pull request #33991 from SchoolGuy/monitoring/rbd-image-details
Lenz Grimmer [Mon, 4 May 2020 07:59:53 +0000 (09:59 +0200)]
Merge pull request #33991 from SchoolGuy/monitoring/rbd-image-details

mgr/dashboard/grafana: Add rbd-image details dashboard

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Jan Fajerski <jfajerski@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Patrick Seidensal <pnawracay@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
5 years agoMerge pull request #34874 from tchaikov/wip-crimson-thread-pool-test
Kefu Chai [Sat, 2 May 2020 03:52:41 +0000 (11:52 +0800)]
Merge pull request #34874 from tchaikov/wip-crimson-thread-pool-test

test/crimson: minimize the lexical scope of thread pool

Reviewed-by: Samuel Just <sjust@redhat.com>
5 years agoMerge pull request #34880 from neha-ojha/wip-balancer-cleanup
Josh Durgin [Fri, 1 May 2020 20:15:58 +0000 (13:15 -0700)]
Merge pull request #34880 from neha-ojha/wip-balancer-cleanup

qa/suites/rados/thrash*: remove upmap.yaml and off.yaml

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
5 years agoMerge pull request #34536 from varshar16/wip-cephfs-shell-flake8-py3
Gregory Farnum [Fri, 1 May 2020 19:30:00 +0000 (12:30 -0700)]
Merge pull request #34536 from varshar16/wip-cephfs-shell-flake8-py3

cephfs-shell: Change tox testenv name to py3

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoqa/suites/rados/thrash*: add on.yaml 34880/head
Neha Ojha [Fri, 1 May 2020 18:49:36 +0000 (18:49 +0000)]
qa/suites/rados/thrash*: add on.yaml

To test with balancer in upmap mode, which is the default.

Signed-off-by: Neha Ojha <nojha@redhat.com>
5 years agoqa/suites/rados/thrash*: remove upmap.yaml and off.yaml
Neha Ojha [Fri, 1 May 2020 18:31:01 +0000 (18:31 +0000)]
qa/suites/rados/thrash*: remove upmap.yaml and off.yaml

The balancer is always on, so we don't need upmap.yaml.
off.yaml doesn't make sense anymore.

Signed-off-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34765 from changchengx/doc
Jason Dillaman [Fri, 1 May 2020 16:33:00 +0000 (12:33 -0400)]
Merge pull request #34765 from changchengx/doc

doc/rbd: explicit reminder for libvirt directory access permissions

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
5 years agoMerge pull request #34877 from vumrao/wip-vumrao-45355
Casey Bodley [Fri, 1 May 2020 16:31:49 +0000 (12:31 -0400)]
Merge pull request #34877 from vumrao/wip-vumrao-45355

rgw/rgw_bucket: clear tenant string for non tenanted buckets in rgw_bucket_parse_bucket_key function.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agorgw/rgw_bucket: clear tenant string for non tenanted buckets 34877/head
Vikhyat Umrao [Fri, 1 May 2020 15:28:55 +0000 (08:28 -0700)]
rgw/rgw_bucket: clear tenant string for non tenanted buckets
in rgw_bucket_parse_bucket_key function.

Fixes: https://tracker.ceph.com/issues/45355
Signed-off-by: Vikhyat Umrao <vikhyat@redhat.com>
5 years agoMerge pull request #34787 from trociny/wip-45305
Jason Dillaman [Fri, 1 May 2020 15:23:02 +0000 (11:23 -0400)]
Merge pull request #34787 from trociny/wip-45305

qa/workunits/rbd: fix list-mapped filter in unmap_device

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
5 years agodoc/rbd: explicit remind the directory access right 34765/head
Changcheng Liu [Mon, 27 Apr 2020 10:16:43 +0000 (18:16 +0800)]
doc/rbd: explicit remind the directory access right

It needs to create admin socket to use perf counter for
debug purpose. Remind the access right to directory.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
5 years agoMerge pull request #34756 from yison/rwl-image-writeback-cache-seq7
Jason Dillaman [Fri, 1 May 2020 14:41:28 +0000 (10:41 -0400)]
Merge pull request #34756 from yison/rwl-image-writeback-cache-seq7

rbd/cache: Replicated Write Log core codes - aio_discard

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
5 years agoMerge pull request #34575 from hillpd/suicide_grace_fix
Yuri Weinstein [Fri, 1 May 2020 14:33:10 +0000 (07:33 -0700)]
Merge pull request #34575 from hillpd/suicide_grace_fix

rados: prevent ShardedOpWQ suicide_grace drop when waiting for work.

5 years agoMerge pull request #34569 from ifed01/wip-ifed-more-bluefs-stats
Yuri Weinstein [Fri, 1 May 2020 14:31:52 +0000 (07:31 -0700)]
Merge pull request #34569 from ifed01/wip-ifed-more-bluefs-stats

os/bluestore: improve bluefs stats reporting

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
5 years agoMerge pull request #34376 from yuvalif/fix_amqp_routable_option
Casey Bodley [Fri, 1 May 2020 13:00:01 +0000 (09:00 -0400)]
Merge pull request #34376 from yuvalif/fix_amqp_routable_option

rgw/amqp: fix the "routable" delivery mode

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agotest/crimson: minimize the lexical scope of thread pool 34874/head
Kefu Chai [Thu, 30 Apr 2020 02:44:10 +0000 (10:44 +0800)]
test/crimson: minimize the lexical scope of thread pool

to show the typical use case of thread pool in a better manner: thread
pool can be initialized *in* a seastar application.

also move `handle_exception()` out to catch all exceptions throwns in
the seastar app.

Signed-off-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34657 from lxbsz/py3_com
Kefu Chai [Fri, 1 May 2020 05:35:46 +0000 (13:35 +0800)]
Merge pull request #34657 from lxbsz/py3_com

qa/tasks/vstart_runner.py: to be python3 compatible

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34824 from sebastian-philipp/python-common-fix-device-selection...
Kefu Chai [Fri, 1 May 2020 05:11:01 +0000 (13:11 +0800)]
Merge pull request #34824 from sebastian-philipp/python-common-fix-device-selection-type-annotation

python-common: Fix wrong type annotation

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
5 years agoMerge pull request #34846 from tchaikov/wip-45147
Kefu Chai [Fri, 1 May 2020 05:08:29 +0000 (13:08 +0800)]
Merge pull request #34846 from tchaikov/wip-45147

mgr: do not load disabled modules

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
5 years agoMerge pull request #34786 from aclamk/wip-common-pretty-binary
Kefu Chai [Fri, 1 May 2020 05:06:59 +0000 (13:06 +0800)]
Merge pull request #34786 from aclamk/wip-common-pretty-binary

common: Add pretty_binary_string conversions

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34772 from aclamk/wip-bs-faster-fsck-no-cache
Kefu Chai [Fri, 1 May 2020 05:06:09 +0000 (13:06 +0800)]
Merge pull request #34772 from aclamk/wip-bs-faster-fsck-no-cache

kv/KeyValueDB, os/bluestore: Made fsck faster by not caching results

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
5 years agoMerge pull request #34754 from ifed01/wip-ifed-fix-45195
Kefu Chai [Fri, 1 May 2020 05:04:30 +0000 (13:04 +0800)]
Merge pull request #34754 from ifed01/wip-ifed-fix-45195

os/bluestore: fix improper blob usage while handling deferred big write.

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
5 years agoMerge pull request #34738 from sebastian-philipp/insights-rm-tox
Kefu Chai [Fri, 1 May 2020 05:03:18 +0000 (13:03 +0800)]
Merge pull request #34738 from sebastian-philipp/insights-rm-tox

pybind/mgr: Remove insights/tox.ini

Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34690 from sebastian-philipp/cephadm-crush-keyring-erro
Kefu Chai [Fri, 1 May 2020 05:02:18 +0000 (13:02 +0800)]
Merge pull request #34690 from sebastian-philipp/cephadm-crush-keyring-erro

mgr/cephadm: raise, if crash keyring fails

Reviewed-by: Michael Fritch <mfritch@suse.com>
5 years agoMerge pull request #34632 from kotreshhr/bash-completion
Kefu Chai [Fri, 1 May 2020 05:01:28 +0000 (13:01 +0800)]
Merge pull request #34632 from kotreshhr/bash-completion

bash_completion: Do not auto complete obsolete and hidden cmds

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
5 years agoMerge pull request #34503 from ifed01/wip-ifed-fix-huge-bluefs-reads
Kefu Chai [Fri, 1 May 2020 05:00:05 +0000 (13:00 +0800)]
Merge pull request #34503 from ifed01/wip-ifed-fix-huge-bluefs-reads

os/bluestore: fix huge (>4GB) bluefs reads

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>