]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
6 years agoceph-volume: fix deploy playbook for ansible~=2.6,<2.7 29074/head
Andrew Schoen [Tue, 16 Jul 2019 15:29:40 +0000 (10:29 -0500)]
ceph-volume: fix deploy playbook for ansible~=2.6,<2.7

When testing the lumionus and mimic branch the import_role
ansible feature does not work as expected. Variables created by one
role is not available to the next role called when using
import_role. To fix this, we need to use the roles keyword instead.

This commit is only applies to luminous and mimic and should
only be applied there.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
(cherry picked from commit b619988fbfafa7568e0ec51cfb56336a72460d44)

6 years agoceph-volume: update deploy.yml
Guillaume Abrioux [Wed, 13 Feb 2019 10:27:12 +0000 (11:27 +0100)]
ceph-volume: update deploy.yml

update deploy.yml accordingly with recent changes in ceph-ansible.

Fixes: ceph/ceph-ansible#3602
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit da13da67bc1e8ba062c61a716eea485ae462db48)

6 years agoMerge pull request #28123 from dillaman/wip-39461-mimic
Yuri Weinstein [Thu, 11 Jul 2019 20:16:35 +0000 (13:16 -0700)]
Merge pull request #28123 from dillaman/wip-39461-mimic

mimic: rbd-mirror: clear out bufferlist prior to listing mirror images

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28133 from dillaman/wip-38441-mimic
Yuri Weinstein [Thu, 11 Jul 2019 20:15:53 +0000 (13:15 -0700)]
Merge pull request #28133 from dillaman/wip-38441-mimic

mimic: librbd: ensure compare-and-write doesn't skip compare after copyup

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28770 from dillaman/wip-40573-mimic
Yuri Weinstein [Thu, 11 Jul 2019 20:15:09 +0000 (13:15 -0700)]
Merge pull request #28770 from dillaman/wip-40573-mimic

mimic: librbd: properly track in-flight flush requests

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28814 from trociny/wip-40461-mimic
Yuri Weinstein [Thu, 11 Jul 2019 20:14:41 +0000 (13:14 -0700)]
Merge pull request #28814 from trociny/wip-40461-mimic

mimic: journal: properly advance read offset after skipping invalid range

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge pull request #28161 from pdvian/wip-39426-mimic
Yuri Weinstein [Wed, 10 Jul 2019 19:38:56 +0000 (12:38 -0700)]
Merge pull request #28161 from pdvian/wip-39426-mimic

mimic: mgr: deadlock

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
6 years agoMerge pull request #28326 from cbodley/wip-40088
Yuri Weinstein [Wed, 10 Jul 2019 19:38:12 +0000 (12:38 -0700)]
Merge pull request #28326 from cbodley/wip-40088

mimic: common: parse ISO 8601 datetime format

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #28399 from xiexingguo/wip-fudege-for-m
Yuri Weinstein [Wed, 10 Jul 2019 19:37:48 +0000 (12:37 -0700)]
Merge pull request #28399 from xiexingguo/wip-fudege-for-m

mimic: mgr/balancer: fix fudge

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #28645 from ifed01/wip-ifed-fix-40080-mimic
Yuri Weinstein [Wed, 10 Jul 2019 19:37:07 +0000 (12:37 -0700)]
Merge pull request #28645 from ifed01/wip-ifed-fix-40080-mimic

mimic: os/bluestore: fix duplicate allocations in bmap allocator

Reviewed-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #28948 from ceph/backport-mimic-28866
Alfredo Deza [Wed, 10 Jul 2019 13:20:03 +0000 (09:20 -0400)]
Merge pull request #28948 from ceph/backport-mimic-28866

mimic: ceph-volume broken assertion errors after pytest changes

Reviewed-by: Alfredo Deza <adeza@redhat.com>
6 years agoMerge pull request #28947 from ceph/backport-mimic-28836
Alfredo Deza [Wed, 10 Jul 2019 13:19:19 +0000 (09:19 -0400)]
Merge pull request #28947 from ceph/backport-mimic-28836

mimic: ceph-volume tests add a sleep in tox for slow OSDs after booting

Reviewed-by: Alfredo Deza <adeza@redhat.com>
6 years agoceph-volume api.lvm catch IndexError when parsing dmmapper output 28948/head
Alfredo Deza [Wed, 3 Jul 2019 18:59:18 +0000 (14:59 -0400)]
ceph-volume api.lvm catch IndexError when parsing dmmapper output

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit bfff70d07a1ccf7fb11a96dd7c63335cfc9b5e26)

6 years agoceph-volume tests update to use error.value instead of str(error)
Alfredo Deza [Wed, 3 Jul 2019 18:58:31 +0000 (14:58 -0400)]
ceph-volume tests update to use error.value instead of str(error)

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit 484be7ffb1e0865ff840090a73036567a1f4f5d2)

6 years agoceph-volume tests add a sleep in tox for slow OSDs after booting 28947/head
Alfredo Deza [Tue, 2 Jul 2019 12:34:01 +0000 (08:34 -0400)]
ceph-volume tests add a sleep in tox for slow OSDs after booting

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit b398f99f810d97c94af6d943aed4c11a5fd69c19)

6 years agoMerge pull request #28930 from ceph/backport-mimic-26739
Alfredo Deza [Tue, 9 Jul 2019 20:02:13 +0000 (16:02 -0400)]
Merge pull request #28930 from ceph/backport-mimic-26739

mimic: ceph-volume: replace testinfra command with py.test

Reviewed-by: Alfredo Deza
6 years agoMerge pull request #28209 from votdev/add_tenant_to_bucket
Yuri Weinstein [Mon, 8 Jul 2019 20:01:45 +0000 (13:01 -0700)]
Merge pull request #28209 from votdev/add_tenant_to_bucket

mimic: rgw: Return tenant field in bucket_stats function

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28249 from pdvian/wip-39532-mimic
Yuri Weinstein [Mon, 8 Jul 2019 20:01:21 +0000 (13:01 -0700)]
Merge pull request #28249 from pdvian/wip-39532-mimic

mimic: rgw: resharding of a versioned bucket causes a bucket stats discrepancy

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28348 from smithfarm/wip-39179-mimic
Yuri Weinstein [Mon, 8 Jul 2019 20:00:59 +0000 (13:00 -0700)]
Merge pull request #28348 from smithfarm/wip-39179-mimic

mimic: rgw: remove_olh_pending_entries() does not limit the number of xattrs to remove

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28409 from cbodley/wip-40147
Yuri Weinstein [Mon, 8 Jul 2019 20:00:28 +0000 (13:00 -0700)]
Merge pull request #28409 from cbodley/wip-40147

mimic: rgw: fix bucket may redundantly list keys after BI_PREFIX_CHAR

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28422 from pdvian/wip-39697-mimic
Yuri Weinstein [Mon, 8 Jul 2019 19:59:53 +0000 (12:59 -0700)]
Merge pull request #28422 from pdvian/wip-39697-mimic

mimic: rgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28483 from pdvian/wip-39734-mimic
Yuri Weinstein [Mon, 8 Jul 2019 19:59:26 +0000 (12:59 -0700)]
Merge pull request #28483 from pdvian/wip-39734-mimic

mimic: rgw: multisite: mismatch of bucket creation times from List Buckets

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28668 from smithfarm/wip-40348-mimic
Yuri Weinstein [Mon, 8 Jul 2019 19:59:03 +0000 (12:59 -0700)]
Merge pull request #28668 from smithfarm/wip-40348-mimic

mimic: tests: use curl in wait_for_radosgw() in util/rgw.py

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28711 from pdvian/wip-40133-mimic
Yuri Weinstein [Mon, 8 Jul 2019 19:58:39 +0000 (12:58 -0700)]
Merge pull request #28711 from pdvian/wip-40133-mimic

mimic: rgw: TempURL should not allow PUTs with the X-Object-Manifest.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoMerge pull request #28716 from smithfarm/wip-40507-mimic
Yuri Weinstein [Mon, 8 Jul 2019 19:58:14 +0000 (12:58 -0700)]
Merge pull request #28716 from smithfarm/wip-40507-mimic

mimic: rgw: conditionally allow builtin users with non-unique email addresses

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 years agoceph-volume tests.simple replace testinfra command for py.test 28930/head
Alfredo Deza [Mon, 4 Mar 2019 14:05:07 +0000 (09:05 -0500)]
ceph-volume tests.simple replace testinfra command for py.test

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit e90ebc3264004cab3286895c843db43f20a4840b)

6 years agoceph-volume tests.lvm replace testinfra command for py.test
Alfredo Deza [Mon, 4 Mar 2019 14:04:51 +0000 (09:04 -0500)]
ceph-volume tests.lvm replace testinfra command for py.test

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit c4597fc63195c654b960f747f9d50a558fa719c0)

6 years agoceph-volume tests.batch replace testinfra command for py.test
Alfredo Deza [Mon, 4 Mar 2019 14:04:36 +0000 (09:04 -0500)]
ceph-volume tests.batch replace testinfra command for py.test

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit dc7501af69ccbdabb5e6a77a91696454855201e9)

6 years agoMerge pull request #28029 from ifed01/wip-ifed-dump-before-nospanid-mimic
Nathan Cutler [Tue, 2 Jul 2019 08:24:58 +0000 (10:24 +0200)]
Merge pull request #28029 from ifed01/wip-ifed-dump-before-nospanid-mimic

mimic: os/bluestore: dump before "no-spanning blob id" abort

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #28619 from xiexingguo/wip-40230
Yuri Weinstein [Mon, 1 Jul 2019 20:13:31 +0000 (13:13 -0700)]
Merge pull request #28619 from xiexingguo/wip-40230

mimic: mon, osd: parallel clean_pg_upmaps

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoMerge pull request #28138 from dillaman/wip-39186-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:06:17 +0000 (13:06 -0700)]
Merge pull request #28138 from dillaman/wip-39186-mimic

mimic: rbd: filter out group/trash snapshots from snap_list

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28139 from dillaman/wip-38563-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:05:53 +0000 (13:05 -0700)]
Merge pull request #28139 from dillaman/wip-38563-mimic

mimic: librbd: race condition possible when validating RBD pool

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28150 from trociny/wip-37691-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:05:20 +0000 (13:05 -0700)]
Merge pull request #28150 from trociny/wip-37691-mimic

mimic: librbd: disable image mirroring when moving to trash

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
6 years agoMerge pull request #28151 from dillaman/wip-38509-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:04:49 +0000 (13:04 -0700)]
Merge pull request #28151 from dillaman/wip-38509-mimic

mimic: librbd: add missing shutdown states to managed lock helper

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agoMerge pull request #28202 from dzafman/wip-39698
Yuri Weinstein [Mon, 1 Jul 2019 20:02:40 +0000 (13:02 -0700)]
Merge pull request #28202 from dzafman/wip-39698

mimic: osd: Don't include user changeable flag in snaptrim related assert

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
6 years agoMerge pull request #28232 from pdvian/wip-39518-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:01:19 +0000 (13:01 -0700)]
Merge pull request #28232 from pdvian/wip-39518-mimic

mimic: osd: Don't evict after a flush if intersecting scrub range

Reviewed-by: David Zafman <dzafman@redhat.com>
6 years agoMerge pull request #28259 from pdvian/wip-39538-mimic
Yuri Weinstein [Mon, 1 Jul 2019 20:00:46 +0000 (13:00 -0700)]
Merge pull request #28259 from pdvian/wip-39538-mimic

mimic: osd/PG: fix last_complete re-calculation on splitting

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agoMerge pull request #28503 from pdvian/wip-39737-mimic
Yuri Weinstein [Mon, 1 Jul 2019 19:57:35 +0000 (12:57 -0700)]
Merge pull request #28503 from pdvian/wip-39737-mimic

mimic: osd: Output Base64 encoding of CRC header if binary data present

Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #28540 from pdvian/wip-39744-mimic
Yuri Weinstein [Mon, 1 Jul 2019 19:57:01 +0000 (12:57 -0700)]
Merge pull request #28540 from pdvian/wip-39744-mimic

mimic: mon: paxos: introduce new reset_pending_committing_finishers for safety

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoMerge pull request #28574 from smithfarm/wip-40280-mimic
Yuri Weinstein [Mon, 1 Jul 2019 19:56:10 +0000 (12:56 -0700)]
Merge pull request #28574 from smithfarm/wip-40280-mimic

mimic: bluestore: 50-100% iops lost due to bluefs_preextend_wal_files = false

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Sage Weil <sage@redhat.com>
6 years agojournal: properly advance read offset after skipping invalid range 28814/head
Mykola Golub [Tue, 18 Jun 2019 09:24:28 +0000 (12:24 +0300)]
journal: properly advance read offset after skipping invalid range

Fixes: https://tracker.ceph.com/issues/40409
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 7b8fd11fc6f49ca69a8484ee4b175b530b2dd2a3)

6 years agolibrbd: remove special case for starting AioCompletion ops 28770/head
Jason Dillaman [Mon, 29 Apr 2019 15:37:37 +0000 (11:37 -0400)]
librbd: remove special case for starting AioCompletion ops

All ops can be immediately started now that flush ops won't
accidentally block themselves.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit b5fc7ecaf7a3741d227ab5a9108392813dd03495)

Conflicts:
src/librbd/io/AioCompletion.cc: assert/ceph_assert conflicts
src/librbd/io/ImageRequest.cc: assert/ceph_assert conflicts

6 years agolibrbd: simplify IO flush handling through AsyncOperation
Jason Dillaman [Mon, 29 Apr 2019 14:13:21 +0000 (10:13 -0400)]
librbd: simplify IO flush handling through AsyncOperation

Allow ImageFlushRequest to directly execute a flush call through
AsyncOperation. This will allow the flush to be directly linked
to its preceeding IOs.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 09e4127d5df1e2a79f2536dc784ec3730feea9ce)

Conflicts:
src/librbd/io/AsyncOperation.cc: trivial resolution
src/test/librbd/io/test_mock_CopyupRequest.cc: DNE

6 years agorgw: conditionally allow non-unique email addresses 28716/head
Matt Benjamin [Thu, 30 May 2019 15:15:23 +0000 (11:15 -0400)]
rgw: conditionally allow non-unique email addresses

Conditionally allow non-unique email address values for builtin
RGW users.

Fixes: http://tracker.ceph.com/issues/40089
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 974791522007cca6d8fb30e83677f0ddd7c4e71d)

Conflicts:
    src/rgw/rgw_user.cc
- changed '_conf.get_val<bool>' to '_conf->get_val<bool>'

6 years agorgw: TempURL should not allow PUTs with the X-Object-Manifest. 28711/head
Radoslaw Zarzynski [Fri, 28 Jul 2017 14:37:07 +0000 (10:37 -0400)]
rgw: TempURL should not allow PUTs with the X-Object-Manifest.

Fixes: http://tracker.ceph.com/issues/20797
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 40e602bc3866598952eb0dd68ecec947dd7b70d6)

6 years agoqa: use curl in wait_for_radosgw() in util/rgw.py 28668/head
Ali Maredia [Wed, 12 Jun 2019 20:12:47 +0000 (16:12 -0400)]
qa: use curl in wait_for_radosgw() in util/rgw.py

Signed-off-by: Ali Maredia <amaredia@redhat.com>
(cherry picked from commit 9c6afa3fb570629a57612f250a6a4890a65cbc6e)

6 years agoos/bluestore: BitmapAllocator::allocate: log new extents only 28645/head
Igor Fedotov [Tue, 11 Jun 2019 17:31:32 +0000 (20:31 +0300)]
os/bluestore: BitmapAllocator::allocate: log new extents only

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit a90d57ca05c902eab8ca19090b856ea0e08f5d2b)

6 years agoos/bluestore: distinguis request and results in bitmap alloc log
Igor Fedotov [Tue, 11 Jun 2019 17:23:08 +0000 (20:23 +0300)]
os/bluestore: distinguis request and results in bitmap alloc log

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 84c2d4148574373c678ad8f00e35f9e209ba1f18)

6 years agoos/bluestore: fix duplicate allocations in bmap allocator
Igor Fedotov [Tue, 11 Jun 2019 17:05:09 +0000 (20:05 +0300)]
os/bluestore: fix duplicate allocations in bmap allocator

Fixes: http://tracker.ceph.com/issues/40080
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit eac81bc85970287fce60178e80c37628b3df0e7d)

 Conflicts:
src/os/bluestore/fastbmap_allocator_impl.cc
        assert vs. ceph_assert mismatch

6 years agotest: add parallel clean_pg_upmaps test 28619/head
xie xingguo [Mon, 3 Jun 2019 08:43:25 +0000 (16:43 +0800)]
test: add parallel clean_pg_upmaps test

With parallel clean_pg_upmaps feature on, the total time cost
of the performance test which now can utilize up to 8 threads for
parallel upmap validating decreased from:

maybe_remove_pg_upmaps (~10000 pg_upmap_items) latency:104s

to:

clean_pg_upmaps (~10000 pg_upmap_items) latency:7s

Note that by default the mon uses only 4 worker threads for
CPU intensive background work, you could further increase
the "mon_cpu_threads" option value if you decided the
time-consuming of clean_pg_upmaps still matters.

Fixes: http://tracker.ceph.com/issues/40104
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit a45112a9761d7b11f62cf4dac9f3a8e093cdd78f)

6 years agomon/OSDMonitor: do clean_pg_upmaps the parallel way if necessary
xie xingguo [Mon, 3 Jun 2019 08:10:22 +0000 (16:10 +0800)]
mon/OSDMonitor: do clean_pg_upmaps the parallel way if necessary

There could definitely be some certain cases we could reliably
skip this kind of checking, but there is no easy way to separate
those out.
However, this is clearly the general way to do the massive pg
upmap clean-up job more efficiently and hence should make sense
in all cases.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit c395f45f1f4d6f5e2b538a34730d9c92d8f9ae8b)

6 years agoosd/OSDMap: split clean_pg_upmaps into smaller helpers
xie xingguo [Sat, 1 Jun 2019 11:46:25 +0000 (19:46 +0800)]
osd/OSDMap: split clean_pg_upmaps into smaller helpers

- it's good to read.
- the updating pending_inc part should be made independent
  since it is going to be racy while running in parallel.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 4d5cf1e4173e5151cc571af571edb2eab0bb46a7)

Conflicts:
slight conflicts with pg-merge

6 years agoosd: maybe_remove_pg_upmaps -> clean_pg_upmaps
xie xingguo [Mon, 17 Jun 2019 10:44:09 +0000 (18:44 +0800)]
osd: maybe_remove_pg_upmaps -> clean_pg_upmaps

It should always be the preferred option to kill the unnecessary
or duplicated code, which is good for maintenance.
Also I've noticed there is already a clean_temps helper, so re-naming
maybe_remove_pg_upmaps to clean_pg_upmaps to at least keep pace with
that sounds to be a natural choice for me..

Master PR: https://github.com/ceph/ceph/pull/28373

This does not follow the normal backport process
since this piece of code has been changed a lot for the past 18 months..

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
6 years agoosd/OSDMapMapping: make ParallelPGMapper can accept input pgs
xie xingguo [Wed, 5 Jun 2019 02:41:52 +0000 (10:41 +0800)]
osd/OSDMapMapping: make ParallelPGMapper can accept input pgs

The existing "prime temp" machinism is a good inspiration
for cluster with a large number of pgs that need to do various
calculations quickly.
I am planning to do the upmap tidy-up work the same way, hence
the need for an alternate way of specifying pgs to process other
than taking directly from the map.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit f6fd4a312e0dda260f2c150334f06b531678ce47)

Conflicts:
s/g_conf./g_conf->/

6 years agoosd/OSDMap: maybe_remove_pg_upmaps - avoid do_crush twice
xie xingguo [Sat, 1 Jun 2019 06:22:39 +0000 (14:22 +0800)]
osd/OSDMap: maybe_remove_pg_upmaps - avoid do_crush twice

which is extremely time-consuming.
Half of the amount of time of calling maybe_remove_pg_upmaps
has been saved by applying this patch as a result..

Was: maybe_remove_pg_upmaps (~10000 pg_upmap_items) latency:104s
Now: maybe_remove_pg_upmaps (~10000 pg_upmap_items) latency:56s

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 02e5499b350bcd7d9eac98b2072052a9a4a1f535)

Conflicts:
- s/nextmap/tmpmap/
- drop std:: namespace

6 years agoosd/OSDMap: maybe_remove_pg_upmaps - s/pg_to_raw_up/pg_to_raw_upmap/
xie xingguo [Sat, 1 Jun 2019 04:13:19 +0000 (12:13 +0800)]
osd/OSDMap: maybe_remove_pg_upmaps - s/pg_to_raw_up/pg_to_raw_upmap/

The upmap results are directly applied after calling
_pg_to_raw_osds, which means it basically has nothing to do
with the up/down status.
In other words, if a pg_upmap/pg_upmap_items remapped a pg
into some down osds and is now causing collided result,
we should still be able to detect and cancel that.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit d9ed406a61c46858dd8350af5c72d7b8824dcdd3)

Conflicts:
s/nextmap/tmpmap/

6 years agotest/osd: add performance test case for maybe_remove_pg_upmap
xie xingguo [Sat, 1 Jun 2019 02:43:10 +0000 (10:43 +0800)]
test/osd: add performance test case for maybe_remove_pg_upmap

Tom Byrne reported that maybe_remove_pg_upmap might become
super inefficient for large clusters with balancer on.
To identify and resolve the problem, we need to add some good
measurements first.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit c0ce22b8c861fb76957b4cbbd59d9800e1ec09c3)

6 years agoosd/bluestore: Actually wait until completion in write_sync 28574/head
Vitaliy Filippov [Wed, 6 Mar 2019 23:01:18 +0000 (02:01 +0300)]
osd/bluestore: Actually wait until completion in write_sync

This function is only used by RocksDB WAL writing so it must sync data.

This fixes #18338 and thus allows to actually set `bluefs_preextend_wal_files`
to true, gaining +100% single-thread write iops in disk-bound (HDD or bad SSD) setups.
To my knowledge it doesn't hurt performance in other cases.
Test it yourself on any HDD with `fio -ioengine=rbd -direct=1 -bs=4k -iodepth=1`.

Issue #18338 is easily reproduced without this patch by issuing a `kill -9` to the OSD
while doing `fio -ioengine=rbd -direct=1 -bs=4M -iodepth=16`.

Fixes: https://tracker.ceph.com/issues/18338 https://tracker.ceph.com/issues/38559
Signed-off-by: Vitaliy Filippov <vitalif@yourcmc.ru>
(cherry picked from commit c703cf9a7632cbd9f17e148ef203509549a28571)

Conflicts:
src/os/bluestore/KernelDevice.cc
- mimic has a single variable "fd_buffered" where master has an array "fd_buffereds"

6 years agomon: paxos: introduce new reset_pending_committing_finishers for safety 28540/head
Greg Farnum [Mon, 29 Apr 2019 22:39:59 +0000 (15:39 -0700)]
mon: paxos: introduce new reset_pending_committing_finishers for safety

There are asserts about the state of the system and pending_finishers which can
be triggered by running arbitrary commands through again. They are correct
when not restarting, but when we do restart we need to take care to preserve
the same invariants as appropriate. Use this function to be careful about
the order of committing_finishers v pending_finishers and to make sure they're
both empty before any Contexts actually get called.

We also reorder a call to finish_contexts on the waiting_for_writeable list for
similar reasons.

Fixes: http://tracker.ceph.com/issues/39484
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit b17caec586ba2801593db61f91d66719d40b905e)

6 years agoosd: Output Base64 encoding of CRC header if binary data present 28503/head
David Zafman [Sat, 4 May 2019 18:32:40 +0000 (11:32 -0700)]
osd: Output Base64 encoding of CRC header if binary data present

Add optional paramter so cleanbin() for bufferlist can include "Base64:"

Fixes: https://tracker.ceph.com/issues/39582
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit eea239c03ca8aeb9a1da742b07d8627fbe2317e2)

Conflicts:
src/include/util.h : Resolved for cleanbin
src/osd/ReplicatedBackend.cc : Resolved for util.h

6 years agotest/rgw: add multisite test_bucket_creation_time() 28483/head
Casey Bodley [Thu, 9 May 2019 14:07:52 +0000 (10:07 -0400)]
test/rgw: add multisite test_bucket_creation_time()

does not create any buckets itself, but checks that all creation times
match on buckets created by other tests

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 8df991c5cc48a6709185edf506d8bdec4d28e371)

6 years agocls/user: cls_user_set_buckets_info overwrites creation_time
Casey Bodley [Wed, 8 May 2019 18:35:25 +0000 (14:35 -0400)]
cls/user: cls_user_set_buckets_info overwrites creation_time

metadata sync of a new bucket entrypoint may call rgw_link_bucket()
(which in turn calls into cls user) without deleting/unlinking the
previous bucket entrypoint. this prevented the new bucket entrypoint
from overwriting the creation_time of the old one

Fixes: http://tracker.ceph.com/issues/39635
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit c469e5150a3e95b547a7d05d1ae08fa88fad7159)

6 years agoMerge pull request #28457 from yuriw/wip-yuriw-40208-mimic
Yuri Weinstein [Mon, 10 Jun 2019 19:32:05 +0000 (12:32 -0700)]
Merge pull request #28457 from yuriw/wip-yuriw-40208-mimic

qa/tests: removed `1node` and `systemd` tests as ceph-deploy is not actively developed

Reviewed-by: Neha Ojha <nojha@redhat.com>
6 years agoqa/tests: removed `1node` and `systemd` tests as ceph-deploy is not actively developed 28457/head
Yuri Weinstein [Sat, 8 Jun 2019 16:17:53 +0000 (09:17 -0700)]
qa/tests: removed `1node` and `systemd` tests as ceph-deploy is not actively developed

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years agorgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy 28422/head
Abhishek Lekshmanan [Thu, 21 Feb 2019 16:06:52 +0000 (17:06 +0100)]
rgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy

Right now we create a ERR_NO_SUCH_BUCKET ret code but continue further
processing. Since this ret code isn't returned at any stage we end up creating a
bucket instance anyway which shouldn't happen and then succeeding the client
call in cases like put bucket versioning. Return an error code early in these
cases

Fixes: http://tracker.ceph.com/issues/38420
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
(cherry picked from commit cf66a6d5a7eee294313a1a08d0524daf939747e5)

6 years agocls/rgw: test before accessing pkeys->rbegin() 28409/head
Casey Bodley [Tue, 4 Jun 2019 20:40:36 +0000 (16:40 -0400)]
cls/rgw: test before accessing pkeys->rbegin()

if pkeys is empty here, dereferencing rbegin() will crash

Fixes: http://tracker.ceph.com/issues/39984
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit a936a06a657ce1cc118d75f66773aeda4167bbf3)

6 years agorgw: fix bucket may redundantly list keys after BI_PREFIX_CHAR
Tianshan Qu [Tue, 21 May 2019 06:15:51 +0000 (14:15 +0800)]
rgw: fix bucket may redundantly list keys after BI_PREFIX_CHAR

Fixes: http://tracker.ceph.com/issues/39984
Signed-off-by: Tianshan Qu <tianshan@xsky.com>
(cherry picked from commit dc3ffe99b910d04b68d70a1af2f38d877e05cd25)

6 years agomgr/balancer: fix fudge 28399/head
xie xingguo [Tue, 7 May 2019 09:10:21 +0000 (17:10 +0800)]
mgr/balancer: fix fudge

next_* simply record some intermediate results when balancer tries
to find something to optimize, whereas best_* are used for the
final outputs.

Fix by comparing origin_ow with best_ow when determining if we
should use a valid fudge value.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 8f46a351f1fa6f921b373aed4038efc0898a8a44)

6 years agoMerge pull request #28389 from yuriw/wip-yuriw-whitelist-mimic
Yuri Weinstein [Tue, 4 Jun 2019 20:10:44 +0000 (13:10 -0700)]
Merge pull request #28389 from yuriw/wip-yuriw-whitelist-mimic

qa/tests: whitelisted  'application not enabled'

6 years agoqa/tests: whitelisted 'application not enabled' 28389/head
Yuri Weinstein [Tue, 4 Jun 2019 19:53:40 +0000 (12:53 -0700)]
qa/tests: whitelisted  'application not enabled'

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years ago13.2.6 v13.2.6
Jenkins Build Slave User [Mon, 3 Jun 2019 15:18:57 +0000 (15:18 +0000)]
13.2.6

6 years agoMerge pull request #28356 from yuriw/wip-yuriw-whitelist-mimic
Yuri Weinstein [Sun, 2 Jun 2019 20:33:06 +0000 (13:33 -0700)]
Merge pull request #28356 from yuriw/wip-yuriw-whitelist-mimic

qa/tests: whitelisted POOL_APP_NOT_ENABLED

6 years agoqa/tests: whitelisted POOL_APP_NOT_ENABLED 28356/head
Yuri Weinstein [Fri, 31 May 2019 21:04:19 +0000 (14:04 -0700)]
qa/tests: whitelisted POOL_APP_NOT_ENABLED

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years agoMerge pull request #28301 from yuriw/wip-yuriw-exl-python-mimic
Yuri Weinstein [Fri, 31 May 2019 14:55:40 +0000 (07:55 -0700)]
Merge pull request #28301 from yuriw/wip-yuriw-exl-python-mimic

qa/tests: added 'python3-cephfs','python3-rados' to excluded packadges

6 years agorgw: limit entries in remove_olh_pending_entries() 28348/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>
(cherry picked from commit 3805ea635a5f28656072b2cf5cdc9b5bf53b5e97)

Conflicts:
src/rgw/rgw_rados.cc
- mimic ref.ioctx.operate() call takes ref.oid instead of ref.obj.oid

6 years agoqa/tests: added 'python3-cephfs','python3-rados' to excluded packadges 28301/head
Yuri Weinstein [Wed, 29 May 2019 19:19:39 +0000 (12:19 -0700)]
qa/tests: added 'python3-cephfs','python3-rados' to excluded packadges

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years agoMerge pull request #28129 from dillaman/wip-39728-mimic
Yuri Weinstein [Thu, 30 May 2019 20:40:15 +0000 (13:40 -0700)]
Merge pull request #28129 from dillaman/wip-39728-mimic

mimic: qa/workunits/rbd: use https protocol for devstack git operations

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
6 years agocommon/utime: don't pass %z to utime if there is a 'Z' 28326/head
Sage Weil [Fri, 24 May 2019 22:09:53 +0000 (17:09 -0500)]
common/utime: don't pass %z to utime if there is a 'Z'

This fails on centos 7 for some reason.

If it's UTC, we don't need to parse the tz portion, so avoid the issue by
leaving the %z out of the fmt string.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 1d1c4782eea1fac0e9230ed5ac32b19517fdd616)

6 years agocommon/utime: make parse() handle (our) ISO 8601 output
Sage Weil [Thu, 25 Apr 2019 22:15:09 +0000 (17:15 -0500)]
common/utime: make parse() handle (our) ISO 8601 output

- optional subsecond values
- optional timezone offset

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 668d6e7f97bd37f1896611249cfae85bced4b096)

6 years agoMerge pull request #28184 from yuriw/wip-yuriw-fix-distro-mimic
Yuri Weinstein [Tue, 28 May 2019 21:42:01 +0000 (14:42 -0700)]
Merge pull request #28184 from yuriw/wip-yuriw-fix-distro-mimic

qa/tests: cleaned up supported distro

6 years agoosd/PG: fix last_complete re-calculation on splitting 28259/head
xie xingguo [Sat, 20 Apr 2019 08:34:12 +0000 (16:34 +0800)]
osd/PG: fix last_complete re-calculation on splitting

We add hard-limit for pg_logs now, which means we might keep trimming
old log entries irrespective of pg's current missing_set. This as a
result can cause the last_complete pointer moving far ahead of the real
on-disk version (the oldest need of missing_set, for instance) the
corresponding pg should have on splitting:

```
2019-04-19 06:41:52.559247 7efd4725c700 10 osd.2 271 Splitting pg[5.6( v 270'943 lc 0'0 (238'300,270'943] local-lis/les=250/251 n=943 ec=223/223 lis/c 250/223 les/251/224/0 250/271/229) [5,2] r=1 lpr=271 pi=[223,271)/4 crt=270'943 unknown NOTIFY m=518 mbc={}] into 5.16
2019-04-19 06:41:52.561413 7efd4725c700 10 osd.2 pg_epoch: 271 pg[5.6( v 270'943 lc 238'300 (238'300,270'943] local-lis/les=250/251 n=943 ec=223/223 lis/c 250/223 c/f 251/224/0 250/271/229) [5,2] r=1 lpr=271 pi=[223,271)/4 crt=270'943 lcod 0'0 unknown NOTIFY m=261 mbc={}] release_backoffs [MIN,MAX)
```

For the above example, parent's last_complete cursor changed from **0'0** to
**238'300** directly due to the effort of trying to catch up the oldest
log entry changing when splitting was done. However, back into v12.2.9 primary
would still reference shard's last_complete field when trying to figure out all
possible locations of a currently missing object (see PG::MissingLoc::add_source_info):

```c++
  if (oinfo.last_complete < need) {
    if (omissing.is_missing(soid)) {
      ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need
                         << " also missing on osd." << fromosd << dendl;
      continue;
    }
  }
```

Hence a wrongly calculated last_complete could then make primary mis-consider
that a specific shard might have the authoritative object it currently
looking for:

```
2019-04-19 06:41:52.904163 7fd4cfb5a700 10 osd.5 pg_epoch: 271 pg[5.6( v 270'943 lc 238'300 (238'300,270'943] local-lis/les=250/251 n=471 ec=223/223 lis/c 250/223 les/
c/f 251/224/0 250/271/229) [5,2] r=0 lpr=271 pi=[223,271)/4 crt=270'943 lcod 226'77 mlcod 0'0 peering m=16 mbc={}] proc_replica_log for osd.2: 5.6( v 270'943 lc 238'30
0 (238'300,270'943] local-lis/les=250/251 n=471 ec=223/223 lis/c 250/223 les/c/f 251/224/0 250/271/229) log((249'563,270'943], crt=270'943) missing(261 may_include_del
etes = 1)
2019-04-19 06:41:52.904645 7fd4cfb5a700 20 osd.5 pg_epoch: 271 pg[5.6( v 270'943 lc 238'300 (238'300,270'943] local-lis/les=250/251 n=471 ec=223/223 lis/c 250/223 les/
c/f 251/224/0 250/271/229) [5,2] r=0 lpr=271 pi=[223,271)/4 crt=270'943 lcod 226'77 mlcod 0'0 peering m=16 mbc={}]  after missing 5:624c3a7a:::benchmark_data_smithi190
_39968_object1382:head need 226'110 have 0'0
2019-04-19 06:41:53.567820 7fd4d035b700 10 osd.5 pg_epoch: 272 pg[5.6( v 270'943 lc 0'0 (238'300,270'943] local-lis/les=271/272 n=471 ec=223/223 lis/c 250/223 les/c/f
251/224/0 250/271/229) [5,2] r=0 lpr=271 pi=[223,271)/4 crt=270'943 lcod 226'77 mlcod 0'0 unknown m=16 u=13 mbc={255={(1+0)=220,(2+0)=28}}] search_for_missing 5:624c3a
7a:::benchmark_data_smithi190_39968_object1382:head 226'110 is on osd.2
```

note that ```5:624c3a7a:::benchmark_data_smithi190_39968_object1382:head 226'110```
was actually missing on both primary and shard osd.2 whereas primary insisted that
object should exist on shard osd.2!

https://github.com/ceph/ceph/pull/26175 posted an indirect fix
for the above problem by ignoring last_complete when checking the missing set,
but it should generally make more sense to fill in the last_complete field correctly
whenever possible.
Hence coming this additional fix.

Fixes: http://tracker.ceph.com/issues/26958
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit aad5d47be64ed7feba79f540ec1debc45625a74f)

6 years agorgw: minor clean-up -- convert enum BIIndexType to enum class 28249/head
J. Eric Ivancich [Fri, 30 Nov 2018 02:46:04 +0000 (21:46 -0500)]
rgw: minor clean-up -- convert enum BIIndexType to enum class

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 06fcac3ba04b69cc5788938642f8a17bfb520aa2)

6 years agorgw: fix bad versioned bucket stats after reshard
J. Eric Ivancich [Thu, 29 Nov 2018 23:02:45 +0000 (18:02 -0500)]
rgw: fix bad versioned bucket stats after reshard

When a versioned bucket is resharded, the stats for bucket index
entries of type PlainIdx and InstanceIdx were both accumulated to
determine the bucket stats. This caused a doubling of some stats, such
as bytes used. This fix makes certain that only PlainIdx entries are
accumulated. This works for unversioned buckets as well, as they only
have Plain Idx entries.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 6379ec6a81bf469341a095b3b852678115fb99f7)

6 years agoosd: Don't evict after a flush if intersecting scrub range 28232/head
David Zafman [Tue, 26 Mar 2019 22:53:10 +0000 (15:53 -0700)]
osd: Don't evict after a flush if intersecting scrub range

Fixes: http://tracker.ceph.com/issues/38840
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 459cbb5a6ca3b521b20f36f328f25f398d0ef1c4)

6 years agorgw: Return tenant field in bucket_stats function 28209/head
Volker Theile [Wed, 22 May 2019 09:20:49 +0000 (11:20 +0200)]
rgw: Return tenant field in bucket_stats function

Fixes: tracker.ceph.com/issues/36681
Signed-off-by: Volker Theile <vtheile@suse.com>
(cherry picked from commit 9440776f0625451a535d87749d65c8835a76e261)

6 years agoosd: Don't include user changeable flag in snaptrim related assert 28202/head
David Zafman [Tue, 30 Apr 2019 03:20:18 +0000 (20:20 -0700)]
osd: Don't include user changeable flag in snaptrim related assert

Caused by: a53ba7314c53e75d1e0b8a0edd29181db3c93863

Fixes: http://tracker.ceph.com/issues/38124
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 63c2060c2d9eef49dacf2ba240ccfbead9791f43)

Conflicts:
src/osd/PrimaryLogPG.h (Use assert() in mimic)

6 years agoqa/tests: cleaned up supported distro 28184/head
Yuri Weinstein [Mon, 20 May 2019 23:36:36 +0000 (16:36 -0700)]
qa/tests: cleaned up supported distro

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
6 years agomgr/BaseMgrModule: drop GIL in ceph_store_set 28161/head
xie xingguo [Sat, 30 Mar 2019 03:26:19 +0000 (11:26 +0800)]
mgr/BaseMgrModule: drop GIL in ceph_store_set

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 5108860c385cc1d905588d2e92d80295e3222ca4)

Conflicts:
src/mgr/ActivePyModules.cc : Resolved in set_store

6 years agomgr/BaseMgrModule: drop GIL in set_config
xie xingguo [Sat, 30 Mar 2019 03:15:49 +0000 (11:15 +0800)]
mgr/BaseMgrModule: drop GIL in set_config

Holding GIL and run mon_command turns out to be easily deadlock-prone.
https://tracker.ceph.com/issues/35985 is a typical report, and here is
another.

Fix by using PyModuleConfig's own lock for protection of concurrent
accesses, which should be sufficient enough.

Fixes: http://tracker.ceph.com/issues/39040
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 96b7319cc92e13198e05398921404959005c26d9)

Conflicts:
src/mgr/BaseMgrModule.cc : Resolved in ceph_config_set

6 years agorbd-mirror: image replay should retry asok registration upon failure 28151/head
Jason Dillaman [Sat, 23 Feb 2019 00:25:44 +0000 (19:25 -0500)]
rbd-mirror: image replay should retry asok registration upon failure

If the asok registration fails (perhaps due to a race condition with
a deleted and recreated image of the same name), periodically attempt
to register the missing asok hook.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 2d2d3bbc791e807bb0c83072aaeee023116884ce)

6 years agorbd-mirror: failure to initialize pool replayer should stop leader
Jason Dillaman [Fri, 22 Feb 2019 18:52:43 +0000 (13:52 -0500)]
rbd-mirror: failure to initialize pool replayer should stop leader

The leader watcher should not start processing requests if it failed
to initialize.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 3723d44fa83f38572bf7587e1111005c8ba6ed69)

6 years agorbd-mirror: fixed potential bootstrap cancel race condition
Jason Dillaman [Fri, 22 Feb 2019 18:22:55 +0000 (13:22 -0500)]
rbd-mirror: fixed potential bootstrap cancel race condition

If the image replay was canceled prior to the start of the bootstrap
stage, the image replayer would be stuck attempting to shut down if
the bootstrap is paused behind an image sync.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 91b8a24ea58aee01ec8567195b5aabe11f74b87f)

Conflicts:
src/tools/rbd_mirror/ImageReplayer.cc: trivial resolution

6 years agorbd-mirror: complete pool watcher initialization if object missing
Jason Dillaman [Fri, 22 Feb 2019 15:59:26 +0000 (10:59 -0500)]
rbd-mirror: complete pool watcher initialization if object missing

If the mirroring object is missing, complete the initialization and
continue to retry in the background. This is useful for cases where
the remote doesn't (yet) have mirroring enabled but the remote
pool watcher initialization is delaying the leader watcher promotion
to the point where the leader is blacklisted by its peers.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 80954cd914c86e11ffb6a8cbfcb21202cb8131b5)

6 years agorbd-mirror: abort trash watcher initialization if create blacklisted
Jason Dillaman [Thu, 21 Feb 2019 17:37:38 +0000 (12:37 -0500)]
rbd-mirror: abort trash watcher initialization if create blacklisted

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 8b883d136be4454029af7c4c7e580936ad901156)

6 years agorbd-mirror: avoid attempting to reacquire lock if blacklisted
Jason Dillaman [Thu, 21 Feb 2019 17:37:00 +0000 (12:37 -0500)]
rbd-mirror: avoid attempting to reacquire lock if blacklisted

The pool replayer state machine will automatically be restarted
when a blacklist is detected.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit ff37c5c348ee811675007fc90c6b09f094ebf372)

6 years agolibrbd: add missing shutdown states to managed lock helper
Jason Dillaman [Tue, 19 Feb 2019 21:06:48 +0000 (16:06 -0500)]
librbd: add missing shutdown states to managed lock helper

The PRE_SHUTTING_DOWN and SHUTTING_DOWN states were missed
in the 'is_state_shutdown' helper method. This resulted in
rbd-mirror potentially entering an infinite loop during
shutdown.

http://tracker.ceph.com/issues/38387
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 82af5710ad49dd6e24c2736a9865e1a41add89a2)

6 years agoqa/workunits/rbd: delete pools before stopping rbd-mirror
Jason Dillaman [Tue, 19 Feb 2019 20:48:38 +0000 (15:48 -0500)]
qa/workunits/rbd: delete pools before stopping rbd-mirror

This better mimics the behavior of teuthology and tests rbd-mirror
daemon's ability to handle a pool deletion.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 9d694ba3515f6077d2f66b272d3df1ab082b7bea)

6 years agoqa/workunits/rbd: add trash move/restore mirror test 28150/head
Mykola Golub [Fri, 14 Dec 2018 16:47:00 +0000 (16:47 +0000)]
qa/workunits/rbd: add trash move/restore mirror test

Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit b29b4f0c712cb2a2e97ce3de0b15d9075927b172)

6 years agolibrbd: disable image mirroring when moving to trash
Mykola Golub [Wed, 12 Dec 2018 15:42:49 +0000 (15:42 +0000)]
librbd: disable image mirroring when moving to trash

And enable when restoring if mirror pool mode set.

Fixes: https://tracker.ceph.com/issues/37596
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 6844a52ebbc45a046b4a94909b48bc4fc0c305c7)

Conflicts:
src/librbd/api/Trash.cc (the code is in src/librbd/internal.cc)

6 years agolibrbd: create state machine uses new validate pool state machine 28139/head
Jason Dillaman [Wed, 27 Feb 2019 19:08:04 +0000 (14:08 -0500)]
librbd: create state machine uses new validate pool state machine

Fixes: http://tracker.ceph.com/issues/38500
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 6a84ca3f24421a5150ae32e7ff380f4121d32b13)

Conflicts:
src/librbd/image/CreateRequest.cc: trivial resolution