]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
6 years agolibrbd: force a copyup object map update if migration completes 27357/head
Jason Dillaman [Mon, 8 Apr 2019 17:42:16 +0000 (13:42 -0400)]
librbd: force a copyup object map update if migration completes

If a live-migration copyup was in-progress when the copyup completes,
force the object map to be updated.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: cleaned up snap/parent lock release in read-from-parent path
Jason Dillaman [Thu, 4 Apr 2019 15:23:58 +0000 (11:23 -0400)]
librbd: cleaned up snap/parent lock release in read-from-parent path

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agotest/librbd: initial unit test for copyup state machine
Jason Dillaman [Tue, 2 Apr 2019 18:10:42 +0000 (14:10 -0400)]
test/librbd: initial unit test for copyup state machine

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: copyup should restart delayed ops against the same object
Jason Dillaman [Thu, 4 Apr 2019 01:35:40 +0000 (21:35 -0400)]
librbd: copyup should restart delayed ops against the same object

This avoids the potential for a race condition where an in-flight
copyup is removed from the in-flight copyup list and a subsequent
IO against the same object causes a second in-flight copyup.

Fixes: http://tracker.ceph.com/issues/39021
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: merge copyup object map update states
Jason Dillaman [Tue, 2 Apr 2019 15:51:36 +0000 (11:51 -0400)]
librbd: merge copyup object map update states

The object map HEAD and HEAD/snapshot update states have been
simplified and merged into a single state. This also fixes
several potential race conditions and an issue where CoR might
incorrectly mark the HEAD object has exists+dirty.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: refactor copyup state machine to match current code style
Jason Dillaman [Fri, 29 Mar 2019 18:17:15 +0000 (14:17 -0400)]
librbd: refactor copyup state machine to match current code style

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: properly hold snap/parent locks during IO
Jason Dillaman [Fri, 29 Mar 2019 17:23:37 +0000 (13:23 -0400)]
librbd: properly hold snap/parent locks during IO

The ImageCtx::parent pointer was dereferenced without holding the lock
which could lead to a crash. The ImageCtx::migration_info structure
was also dereferenced without holding a lock.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: empty IO requests should complete in new context
Jason Dillaman [Tue, 2 Apr 2019 19:33:00 +0000 (15:33 -0400)]
librbd: empty IO requests should complete in new context

This will avoid the possibility of a lock being held by the caller
and having the IO immediately complete back to the calling state
machine.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: deep-copy object copy should register an in-flight op
Jason Dillaman [Mon, 1 Apr 2019 18:48:47 +0000 (14:48 -0400)]
librbd: deep-copy object copy should register an in-flight op

When handling live migrations, the source image is the parent
image of the destination image. To prevent the parent image from
being closed while a request is in-flight, the object copy
state machine now registers an async operation with the source
image.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agolibrbd: deep-copy object copy should delay computing object existence
Jason Dillaman [Fri, 29 Mar 2019 20:33:21 +0000 (16:33 -0400)]
librbd: deep-copy object copy should delay computing object existence

This prevent a potential recursive lock on the destination image's
snap_lock.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge PR #27281 into master
Patrick Donnelly [Mon, 8 Apr 2019 16:35:43 +0000 (09:35 -0700)]
Merge PR #27281 into master

* refs/pull/27281/head:
script/ceph-release-notes: alternate merge commit format

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
6 years agoMerge pull request #26782 from iotcg/master
Kefu Chai [Mon, 8 Apr 2019 16:32:46 +0000 (00:32 +0800)]
Merge pull request #26782 from iotcg/master

vstart.sh: fix CEPH_PORT check and cleanups

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27437 into master
Patrick Donnelly [Mon, 8 Apr 2019 16:26:01 +0000 (09:26 -0700)]
Merge PR #27437 into master

* refs/pull/27437/head:
vstart: add an alias for cephfs-shell to vstart_environment.sh

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge PR #27419 into master
Sage Weil [Mon, 8 Apr 2019 15:17:50 +0000 (10:17 -0500)]
Merge PR #27419 into master

* refs/pull/27419/head:
common: add --log-early command line option

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27091 from yuvalif/s2_pubsub_api_new
Yuval Lifshitz [Mon, 8 Apr 2019 14:31:40 +0000 (17:31 +0300)]
Merge pull request #27091 from yuvalif/s2_pubsub_api_new

S3 compatible pubsub API

6 years agoMerge PR #27374 into master
Sage Weil [Mon, 8 Apr 2019 14:25:14 +0000 (09:25 -0500)]
Merge PR #27374 into master

* refs/pull/27374/head:
mgr/volume: set cephfs metadata bias at 4x
mgr/volume: default to 16 PGs (min) for metadata pool

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge PR #27349 into master
Sage Weil [Mon, 8 Apr 2019 14:24:26 +0000 (09:24 -0500)]
Merge PR #27349 into master

* refs/pull/27349/head:
qa/distros/supported/ubuntu_latest: 16.04 -> 18.04
qa/distros/supported/centos_latest: 7.5 -> 7.6
qa/distros: add centos 7.6

Reviewed-by: David Galloway <dgallowa@redhat.com>
6 years agoMerge PR #27386 into master
Sage Weil [Mon, 8 Apr 2019 14:24:09 +0000 (09:24 -0500)]
Merge PR #27386 into master

* refs/pull/27386/head:
os/filestore/FileJournal: note EIO events
os/filestore: make note of EIO errors when we see them
os/filestore: note devname for later use
global/signal_handler: avoid core dump on EIO
os/bluestore/KernelDevice: note EIO metadata on aio EIO
global: add hook to annotate crash report with EIO information

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge PR #27337 into master
Sage Weil [Mon, 8 Apr 2019 14:13:37 +0000 (09:13 -0500)]
Merge PR #27337 into master

* refs/pull/27337/head:
msg/async: add timeout for connections which are not yet ready
msg: rename ms_tcp_read_timeout to ms_connection_idle_timeout

Reviewed-by: Ricardo Dias <rdias@suse.com>
6 years agovstart: add an alias for cephfs-shell to vstart_environment.sh 27437/head
Jeff Layton [Mon, 8 Apr 2019 14:00:03 +0000 (10:00 -0400)]
vstart: add an alias for cephfs-shell to vstart_environment.sh

Signed-off-by: Jeff Layton <jlayton@redhat.com>
6 years agoMerge pull request #27341 from liewegas/wip-learn-addr-from-peer
Kefu Chai [Mon, 8 Apr 2019 11:53:09 +0000 (19:53 +0800)]
Merge pull request #27341 from liewegas/wip-learn-addr-from-peer

msg/async/ProtocolV[12]: add ms_learn_addr_from_peer

Reviewed-by: Ricardo Dias <rdias@suse.com>
6 years agoMerge pull request #27340 from tchaikov/wip-cmt-more-chatty
Kefu Chai [Mon, 8 Apr 2019 11:50:01 +0000 (19:50 +0800)]
Merge pull request #27340 from tchaikov/wip-cmt-more-chatty

ceph-monstore-tool: print out caps when rebuilding monstore

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #27352 from liewegas/wip-deferred-log-start
Kefu Chai [Mon, 8 Apr 2019 11:49:11 +0000 (19:49 +0800)]
Merge pull request #27352 from liewegas/wip-deferred-log-start

common: start logging for non-global_init users

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27324 from batrick/async-msgr-clear
Kefu Chai [Mon, 8 Apr 2019 11:48:08 +0000 (19:48 +0800)]
Merge pull request #27324 from batrick/async-msgr-clear

msg/async: use faster clear method to delete containers

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge pull request #26806 from xiexingguo/wip-repair-eio-rep
Kefu Chai [Mon, 8 Apr 2019 11:46:36 +0000 (19:46 +0800)]
Merge pull request #26806 from xiexingguo/wip-repair-eio-rep

osd: automatically repair replicated replica on pulling error

Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agoMerge pull request #27417 from tchaikov/wip-rpm-python36-el7
Kefu Chai [Mon, 8 Apr 2019 07:32:05 +0000 (15:32 +0800)]
Merge pull request #27417 from tchaikov/wip-rpm-python36-el7

rpm: use python 3.6 as the default python3

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
6 years agovstart.sh: add space between option and arg in cut command 26782/head
Changcheng Liu [Wed, 6 Mar 2019 08:22:52 +0000 (16:22 +0800)]
vstart.sh: add space between option and arg in cut command

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
6 years agovstart.sh: improve readability of ceph-conf for default op:lookup
Changcheng Liu [Wed, 6 Mar 2019 08:19:46 +0000 (16:19 +0800)]
vstart.sh: improve readability of ceph-conf for default op:lookup

The default operation os ceph-conf is --lookup option.
Add it obviously to enhance its readiness.

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
6 years agovstart.sh: set init-ceph under CEPH_BIN directly
Changcheng Liu [Wed, 6 Mar 2019 08:17:11 +0000 (16:17 +0800)]
vstart.sh: set init-ceph under CEPH_BIN directly

$CEPH_BUILD_DIR/bin/init-ceph is equal to
$CEPH_BIN/init-ceph

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
6 years agovstart.sh: align add/minus shell var usage
Changcheng Liu [Thu, 7 Mar 2019 08:45:57 +0000 (16:45 +0800)]
vstart.sh: align add/minus shell var usage

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
6 years agovstart.sh: fix typo when getting ipv4 address
Changcheng Liu [Wed, 6 Mar 2019 08:14:25 +0000 (16:14 +0800)]
vstart.sh: fix typo when getting ipv4 address

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
6 years agovstart.sh: fix ceph random port check
Changcheng Liu [Wed, 6 Mar 2019 08:11:31 +0000 (16:11 +0800)]
vstart.sh: fix ceph random port check

The regular expression should check the port first, then
check "LISTEN" item. "LISTEN" is not after the port item.

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agorpm: use python 3.6 as the default python3 27417/head
Kefu Chai [Sun, 7 Apr 2019 00:43:59 +0000 (08:43 +0800)]
rpm: use python 3.6 as the default python3

some of our centos7 jenkins builders are failing to build ceph master and
nautilus branches. because EPEL7 recently switched from python3.4 to
python3.6 as the native python3. see
https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedoraproject.org/message/EGUMKAIMPK2UD5VSHXM53BH2MBDGDWMO/

and one of our BuildRequires, cmake3,
was offered by EPEL7. it also followed the python3.6 switch-over to
rebuild against python3.6. as a result, the cmake3-data-3.13.4-2.el7
started to depend on /usr/bin/python3.6, which is in turn offered by
python36 package. after installing python36 as a dependency of the
updated cmake3. but in cmake, we originally checks for the latest
python3 interpreter if WITH_PYTHON3 is enabled, that's why these
builders which happen to install these updated packages started to fail
when detecting the existence of python3.6 related build dependencies.

as a fix, in d1e83082,
python%{python3_pkgversion}-{devel,setuptools,Cython} are listed as
BuildRequires to reflect this change in EPEL7. before d1e83082, we
hardwired them to python34-*.

but as following analysis puts, there are cases where `yum-builddep`
is inconsistent with `rpmbuild`. as `yum-builddep` changes the how
`python3_pkgversion` and `python3_version` macros are expanded:

- none of the packages installed by `yum-builddep` installs the python3
  related rpm macros, so the system stays with whatever python3 it was
  using. in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are consistent before and
  after `yum-builddep`.
- system has python3.4 installed before `yum-builddep`. but
  `yum-builddep` installed python3.6 and also the updated
  `python-rpm-macros` packages, which points `python3_version` and
  `python3_pkgversion` to 3.6 and 36 respectively. in this case,
  `rpmbuild` will complain, because when we run `yum-builddep`,
  `python3_version` was still "3.4".
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python36, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.6 and 36 respectively.
  in this case, `rpmbuild` will complain, because the python36 related
  dependencies are missing. what the system has is python34
  dependencies.
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python34, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.4 and 34 respectively.
  in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are also consistent before and
  after `yum-builddep`.

as we cannot tell if the system has python3 or what the python3 version
the system has before `yum-builddep`, so what we can do is to ensure
`rpmbuild` has what it needs to build Ceph. so let's just stick with
python3.6.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agomsg/async: add timeout for connections which are not yet ready 27337/head
xie xingguo [Sat, 2 Mar 2019 08:23:12 +0000 (16:23 +0800)]
msg/async: add timeout for connections which are not yet ready

There could be various corner cases that may cause an async
connection stuck in the connecting stage (e.g., by manually
creating some loop back connections on the switches of our test cluster,
we can almost 100% reproduce http://tracker.ceph.com/issues/37499).

In 61b9432ef9a3847eceb96f8d5a854567c49bbf61 I try to employ the
existing keep_alive mechanism to get those stuck connections out of the
trap but it does not work if the corresponding connection
is not yet ready, since we always require the underlying connection to be
**ready** in order to send out a keep_alive message.

Fix by making a more general connecting timeout strategy.
If a connecting process can not be finished within a specific interval,
then we simply cut it off and retry.

Fixes: http://tracker.ceph.com/issues/37499
Fixes: http://tracker.ceph.com/issues/38493
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoos/filestore/FileJournal: note EIO events 27386/head
Sage Weil [Thu, 4 Apr 2019 20:49:11 +0000 (15:49 -0500)]
os/filestore/FileJournal: note EIO events

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoos/filestore: make note of EIO errors when we see them
Sage Weil [Thu, 4 Apr 2019 20:48:40 +0000 (15:48 -0500)]
os/filestore: make note of EIO errors when we see them

This is imprecise, since we can't (easily) map an EIO back to a specific
part of the device, or even (easily) tell whether it was a read or write
error.  It's enough to mark a crash dump as an EIO event, though, and to
include the name of the (primary) filestore device.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoos/filestore: note devname for later use
Sage Weil [Thu, 4 Apr 2019 20:09:15 +0000 (15:09 -0500)]
os/filestore: note devname for later use

This will generally happen early, before we see an EIO error and need it.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoglobal/signal_handler: avoid core dump on EIO
Sage Weil [Thu, 4 Apr 2019 19:51:21 +0000 (14:51 -0500)]
global/signal_handler: avoid core dump on EIO

Generating a core dump is overkill if we hit an EIO error from the
hardware.  Exit with an error code instead.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoos/bluestore/KernelDevice: note EIO metadata on aio EIO
Sage Weil [Thu, 4 Apr 2019 19:47:17 +0000 (14:47 -0500)]
os/bluestore/KernelDevice: note EIO metadata on aio EIO

Note that we only do this if we're about to induce a crash.  If we can
pass EIO up the stack, it's up to the upper layer to handle it or trigger
its own crash if it can't.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoglobal: add hook to annotate crash report with EIO information
Sage Weil [Thu, 4 Apr 2019 19:45:52 +0000 (14:45 -0500)]
global: add hook to annotate crash report with EIO information

If the global g_eio* fields are populated, include them in the crash
report, similar to how we populate assertion metadata.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agocommon: add --log-early command line option 27419/head
Sage Weil [Sun, 7 Apr 2019 18:54:59 +0000 (13:54 -0500)]
common: add --log-early command line option

Sometime it is important and useful to see the logs from the bootstrap
phase where we are getting the initial configs from the monitors.  Add
a command-line option --log-early to do that.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #27407 from tchaikov/wip-rpm-python3-el7
Yuri Weinstein [Sat, 6 Apr 2019 15:57:57 +0000 (08:57 -0700)]
Merge pull request #27407 from tchaikov/wip-rpm-python3-el7

rpm: use python3.4 on RHEL7 by default

6 years agoMerge pull request #27403 from cyberang3l/many_objects_per_pg_docs
Neha Ojha [Fri, 5 Apr 2019 23:03:01 +0000 (16:03 -0700)]
Merge pull request #27403 from cyberang3l/many_objects_per_pg_docs

doc: update documentation for the MANY_OBJECTS_PER_PG warning

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #27409 from cbodley/wip-vstart-rgw-debug
Casey Bodley [Fri, 5 Apr 2019 20:41:25 +0000 (16:41 -0400)]
Merge pull request #27409 from cbodley/wip-vstart-rgw-debug

vstart: only add --debug-ms=1 in RGWDEBUG

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agovstart: only add --debug-ms=1 in RGWDEBUG 27409/head
Casey Bodley [Fri, 5 Apr 2019 18:32:06 +0000 (14:32 -0400)]
vstart: only add --debug-ms=1 in RGWDEBUG

Signed-off-by: Casey Bodley <cbodley@redhat.com>
6 years agocmake: should PYTHON3_VERSION_STRING of libpython3 27407/head
Kefu Chai [Fri, 5 Apr 2019 17:54:15 +0000 (01:54 +0800)]
cmake: should PYTHON3_VERSION_STRING of libpython3

and make sure the version matches exactly the requested one

in future, we should use FindPython.cmake

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agodoc: Update documentation for the MANY_OBJECTS_PER_PG warning 27403/head
Vangelis Tasoulas [Fri, 5 Apr 2019 13:58:36 +0000 (15:58 +0200)]
doc: Update documentation for the MANY_OBJECTS_PER_PG warning

The current documentation for the MANY_OBJECTS_PER_PG warning
states that The threshold can be raised to silence the health
warning by adjusting the mon_pg_warn_max_object_skew config
option on the monitors. It seems that this is not true (at least)
since the luminous times, and this option should be adjusted on
the managers.

I encountered this problem and I spend quite sometime injecting
the mon_pg_warn_max_object_skew to the monitors, added the option
ceph.conf and restarted the monitors several times but the warning
was not going away. I had to download the code to see what's
happening and I found out this:

$ git grep -A 3 mon_pg_warn_max_object_skew src/common/options.cc
src/common/options.cc:1480:    Option("mon_pg_warn_max_object_skew", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
src/common/options.cc-1481-    .set_default(10.0)
src/common/options.cc-1482-    .set_description("max skew few average in objects per pg")
src/common/options.cc-1483-    .add_service("mgr"),

After I restarted the ceph-mgr service, the warning went away.

Signed-off-by: Vangelis Tasoulas <vangelis@tasoulas.net>
6 years agoMerge PR #27396 into master
Patrick Donnelly [Fri, 5 Apr 2019 17:49:25 +0000 (10:49 -0700)]
Merge PR #27396 into master

* refs/pull/27396/head:
doc: fixed typo in leadership names

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge PR #27397 into master
Patrick Donnelly [Fri, 5 Apr 2019 17:48:22 +0000 (10:48 -0700)]
Merge PR #27397 into master

* refs/pull/27397/head:
doc: fixed caps

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agorpm: use python3.4 on RHEL7 by default
Kefu Chai [Thu, 4 Apr 2019 18:46:40 +0000 (02:46 +0800)]
rpm: use python3.4 on RHEL7 by default

python3.4 is the native python3 before 7.6

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27400 from cbodley/wip-39118
Casey Bodley [Fri, 5 Apr 2019 16:02:02 +0000 (12:02 -0400)]
Merge pull request #27400 from cbodley/wip-39118

rgw: limit entries in remove_olh_pending_entries()

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
6 years agoMerge PR #26874 into master
Sage Weil [Fri, 5 Apr 2019 13:57:51 +0000 (08:57 -0500)]
Merge PR #26874 into master

* refs/pull/26874/head:
OSD: OSDMapRef access by multiple threads is unsafe

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27132 into master
Sage Weil [Fri, 5 Apr 2019 13:57:31 +0000 (08:57 -0500)]
Merge PR #27132 into master

* refs/pull/27132/head:
os/bluestore: new bluestore_debug_enforce_settings option.

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoMerge PR #27317 into master
Sage Weil [Fri, 5 Apr 2019 13:57:14 +0000 (08:57 -0500)]
Merge PR #27317 into master

* refs/pull/27317/head:
kv: make delete range optional on number of keys

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge PR #27327 into master
Sage Weil [Fri, 5 Apr 2019 13:39:48 +0000 (08:39 -0500)]
Merge PR #27327 into master

* refs/pull/27327/head:
mon/MonmapMonitor: clean up empty created stamp in monmap
common/buffer: fix warnings

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agorgw: limit entries in remove_olh_pending_entries() 27400/head
Casey Bodley [Fri, 5 Apr 2019 13:26:05 +0000 (09:26 -0400)]
rgw: limit entries in remove_olh_pending_entries()

If there are too many entries to send in a single osd op, the osd rejects
the request with EINVAL. This error happens in follow_olh(), which means
that requests against the object logical head (requests with no version
id) can't be resolved to the current object version. In multisite, this
also causes data sync to get stuck in retries

Fixes: http://tracker.ceph.com/issues/39118
Signed-off-by: Casey Bodley <cbodley@redhat.com>
6 years agodoc: fixed caps 27397/head
Servesha Dudhgaonkar [Fri, 5 Apr 2019 11:59:05 +0000 (17:29 +0530)]
doc: fixed caps

Signed-off-by: Servesha Dudhgaonkar <sdudhgao@redhat.com>
6 years agodoc: fixed typo in leadership names 27396/head
Servesha Dudhgaonkar [Fri, 5 Apr 2019 11:46:50 +0000 (17:16 +0530)]
doc: fixed typo in leadership names

Signed-off-by: Servesha Dudhgaonkar <sdudhgao@redhat.com>
6 years agoMerge pull request #27254 from ricardoasmarques/improve-iscsi-overview
Ricardo Marques [Fri, 5 Apr 2019 09:02:47 +0000 (10:02 +0100)]
Merge pull request #27254 from ricardoasmarques/improve-iscsi-overview

mgr/dashboad: Improve iSCSI overview page

Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
6 years agoMerge pull request #27292 from sebastian-philipp/kubejacker-simplify
Sebastian Wagner [Fri, 5 Apr 2019 08:09:24 +0000 (10:09 +0200)]
Merge pull request #27292 from sebastian-philipp/kubejacker-simplify

src/script/kubejacker: Fix and simplify

Reviewed-by: Jeff Layton <jlayton@redhat.com>
6 years agoMerge pull request #27121 from sebastian-philipp/orchestrator-doc-cli-fix-service-add
Kefu Chai [Fri, 5 Apr 2019 05:52:44 +0000 (13:52 +0800)]
Merge pull request #27121 from sebastian-philipp/orchestrator-doc-cli-fix-service-add

doc/orchestrator: Fix broken bullet points

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27379 from xenolinux/wip-fix-bug1
Kefu Chai [Fri, 5 Apr 2019 05:48:58 +0000 (13:48 +0800)]
Merge pull request #27379 from xenolinux/wip-fix-bug1

doc : fixed capitalization

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #26710 from cyx1231st/wip-seastar-msgr-protocolv2
Kefu Chai [Fri, 5 Apr 2019 03:40:01 +0000 (11:40 +0800)]
Merge pull request #26710 from cyx1231st/wip-seastar-msgr-protocolv2

crimson/net: lossy connection for ProtocolV2

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #27383 from tchaikov/wip-cmake-libpython3
Kefu Chai [Fri, 5 Apr 2019 03:30:13 +0000 (11:30 +0800)]
Merge pull request #27383 from tchaikov/wip-cmake-libpython3

cmake: check for MAJOR.MINOR version of python3

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agocrimson/net: more compact code with then() 26710/head
Yingxin Cheng [Mon, 1 Apr 2019 14:30:45 +0000 (22:30 +0800)]
crimson/net: more compact code with then()

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: clean auth related interfaces
Yingxin Cheng [Mon, 1 Apr 2019 14:24:31 +0000 (22:24 +0800)]
crimson/net: clean auth related interfaces

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: scoped enum for proto_type
Yingxin Cheng [Mon, 1 Apr 2019 14:12:41 +0000 (22:12 +0800)]
crimson/net: scoped enum for proto_type

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: utilize lowres_system_clock with better performance
Yingxin Cheng [Mon, 1 Apr 2019 14:05:42 +0000 (22:05 +0800)]
crimson/net: utilize lowres_system_clock with better performance

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: set policy from peer_type
Yingxin Cheng [Mon, 1 Apr 2019 14:03:03 +0000 (22:03 +0800)]
crimson/net: set policy from peer_type

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: fix Socket::read_exactly(0) case
Yingxin Cheng [Thu, 21 Mar 2019 14:21:07 +0000 (22:21 +0800)]
crimson/net: fix Socket::read_exactly(0) case

Do not raise read_eof when try to read 0 bytes.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agotest/crimson: fix perf_crimson_msgr to support v2
Yingxin Cheng [Tue, 19 Mar 2019 14:25:04 +0000 (22:25 +0800)]
test/crimson: fix perf_crimson_msgr to support v2

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agotest/crimson: msgr should wait before shutdown
Yingxin Cheng [Tue, 19 Mar 2019 14:20:12 +0000 (22:20 +0800)]
test/crimson: msgr should wait before shutdown

test_concurrent_dispatch() should wait for server->wait() before
shutting down its messengers.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agotest/crimson: unit test for v2 protocol
Yingxin Cheng [Tue, 19 Mar 2019 14:19:18 +0000 (22:19 +0800)]
test/crimson: unit test for v2 protocol

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: message frame exchanges (lossy part)
Yingxin Cheng [Tue, 19 Mar 2019 14:13:33 +0000 (22:13 +0800)]
crimson/net: message frame exchanges (lossy part)

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add keepalive timestamps to connection
Yingxin Cheng [Tue, 19 Mar 2019 14:06:34 +0000 (22:06 +0800)]
crimson/net: add keepalive timestamps to connection

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: protocolv2 handshake frame exchanges
Yingxin Cheng [Wed, 13 Mar 2019 14:48:12 +0000 (22:48 +0800)]
crimson/net: protocolv2 handshake frame exchanges

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: ProtocolV2 auth part
Yingxin Cheng [Mon, 11 Mar 2019 08:23:11 +0000 (16:23 +0800)]
crimson/net: ProtocolV2 auth part

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: dummy auth for protocol v2
Yingxin Cheng [Mon, 11 Mar 2019 08:19:24 +0000 (16:19 +0800)]
crimson/net: dummy auth for protocol v2

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add AuthConnectionMeta to Protocol
Yingxin Cheng [Mon, 11 Mar 2019 08:15:28 +0000 (16:15 +0800)]
crimson/net: add AuthConnectionMeta to Protocol

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add peer_global_id to Connection
Yingxin Cheng [Mon, 11 Mar 2019 08:12:57 +0000 (16:12 +0800)]
crimson/net: add peer_global_id to Connection

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: banner exchange and HelloFrame
Yingxin Cheng [Wed, 6 Mar 2019 14:59:37 +0000 (22:59 +0800)]
crimson/net: banner exchange and HelloFrame

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: support frame read/write for ProtocolV2
Yingxin Cheng [Wed, 6 Mar 2019 14:58:48 +0000 (22:58 +0800)]
crimson/net: support frame read/write for ProtocolV2

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add target_addr to SocketConnection
Yingxin Cheng [Wed, 6 Mar 2019 09:35:33 +0000 (17:35 +0800)]
crimson/net: add target_addr to SocketConnection

represent the peer target_addr accepted/connected

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add get_mytype() to Messenger
Yingxin Cheng [Wed, 6 Mar 2019 09:32:41 +0000 (17:32 +0800)]
crimson/net: add get_mytype() to Messenger

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: add global_seq in ProtocolV2
Yingxin Cheng [Wed, 6 Mar 2019 09:59:52 +0000 (17:59 +0800)]
crimson/net: add global_seq in ProtocolV2

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: skeleton code for ProtocolV2 logic
Yingxin Cheng [Thu, 28 Feb 2019 08:40:24 +0000 (16:40 +0800)]
crimson/net: skeleton code for ProtocolV2 logic

crimson ProtocolV2 class is following a state-machine design style:
* states are defined in ProtocolV2::state_t;
* call `execute_<state_name>()` methods to trigger different states;
* V2 logics are implemented in each execute_<state_name>() methods, and
  with explicit transitions to other states at the end of the execute_*;
* each state is associated with a write state defined in Protocol.h:
  - none: not allowed to send;
  - delay: messages can be queued, but will be delayed to send;
  - open: dispatch queued message/keepalive/ack;
  - drop: not send any messages, drop them all.

crimson ProtocolV2 is alike async ProtocolV2, with some considerations:
* explicit and encapsulated client/server handshake workflow.
* futurized-exception-based fault handling, which can interrupt protocol
  workflow at any time in each state.
* introduced SERVER_WAIT state, meaning to wait for peer-client's socket
  to reset or be replaced, and expect no further reads.
* introduced an explicit REPLACING state, async-msgr would be at the
  NONE state during replacing.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: apple-to-apple server async-msgr
Yingxin Cheng [Thu, 28 Mar 2019 15:26:12 +0000 (23:26 +0800)]
crimson/net: apple-to-apple server async-msgr

The simplest async-msgr server which will have the same behavior with
crimson-msgr server for apple-to-apple performance test.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agotest/crimson: improved perf tool for crimson-msgr
Yingxin Cheng [Tue, 19 Mar 2019 14:26:59 +0000 (22:26 +0800)]
test/crimson: improved perf tool for crimson-msgr

New features:
* --jobs: start multiple client messengers from core #1 ~ #jobs;
* --core: can assign server core to get away from busy client cores;
* --rounds: a client will send <rounds>/<jobs> messages;

Improved:
* Better configuration report;
* Report individual client results plus a summary;
* Validate if CPU number is sufficient before running;
* Sleep 1 second while connecting, so it won't hurt performance;
* Simplify client logic and bug fixes;

Removed unecessary features:
* finish_decode() for MOSDOp;
* keepalive ratio;

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: fix messenger creation
Yingxin Cheng [Thu, 28 Mar 2019 15:07:35 +0000 (23:07 +0800)]
crimson/net: fix messenger creation

sharded data structures should only be allocated in core#0, or the
program will hang during exit.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: create SocketConnection based on address type
Yingxin Cheng [Fri, 15 Feb 2019 07:43:08 +0000 (15:43 +0800)]
crimson/net: create SocketConnection based on address type

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: use entity_addrvec_t::front() inside messenger
Yingxin Cheng [Fri, 15 Feb 2019 07:27:04 +0000 (15:27 +0800)]
crimson/net: use entity_addrvec_t::front() inside messenger

Do not expect legacy-addr in order to bind v2 address.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: added msgr2 setting for SocketConnection
Yingxin Cheng [Fri, 15 Feb 2019 07:12:55 +0000 (15:12 +0800)]
crimson/net: added msgr2 setting for SocketConnection

Provide entrypoint for the future ProtocolV2 class.

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: implement factory method of Socket
Yingxin Cheng [Fri, 15 Feb 2019 03:34:16 +0000 (11:34 +0800)]
crimson/net: implement factory method of Socket

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: introduce SocketFRef
Yingxin Cheng [Thu, 14 Feb 2019 08:44:20 +0000 (16:44 +0800)]
crimson/net: introduce SocketFRef

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agocrimson/net: introduce protocol-level abstraction
Yingxin Cheng [Thu, 14 Feb 2019 07:49:34 +0000 (15:49 +0800)]
crimson/net: introduce protocol-level abstraction

Signed-off-by: Yingxin Cheng <yingxincheng@gmail.com>
6 years agorpm: install python%{python3_pkgversion}-devel on el7 27383/head
Kefu Chai [Fri, 5 Apr 2019 02:16:23 +0000 (10:16 +0800)]
rpm: install python%{python3_pkgversion}-devel on el7

as RHEL 7.7 support a native python3.6, we cannot hardwire to python3.4
on RHEL7/CentOS7 anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agocmake: check for MAJOR.MINOR version of python3
Boris Ranto [Thu, 4 Apr 2019 20:00:55 +0000 (22:00 +0200)]
cmake: check for MAJOR.MINOR version of python3

We can only check for MAJOR.MINOR version of python3 since
FindPython3Libs does not support checking for MAJOR.MINOR.PATCH version
of python3. We also need to make sure we use the PYTHON3 versions of
these variables.

This should fix a regression introduced by c961e00.

Signed-off-by: Boris Ranto <branto@redhat.com>
6 years agoMerge PR #27266 into master
Patrick Donnelly [Thu, 4 Apr 2019 22:36:14 +0000 (15:36 -0700)]
Merge PR #27266 into master

* refs/pull/27266/head:
cephfs-shell: Fix hidden files and directories list by ls command

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #27380 from ricardoasmarques/fix-iscsi-target-submission
Ricardo Marques [Thu, 4 Apr 2019 22:35:14 +0000 (23:35 +0100)]
Merge pull request #27380 from ricardoasmarques/fix-iscsi-target-submission

mgr/dashboard: Fix iSCSI target submission

Reviewed-by: Tiago Melo <tmelo@suse.com>
6 years agoMerge PR #27198 into master
Patrick Donnelly [Thu, 4 Apr 2019 21:24:38 +0000 (14:24 -0700)]
Merge PR #27198 into master

* refs/pull/27198/head:
vstart: generate environment script suitable for sourcing
cephfs-shell: fix mode of script in tree

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