]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agonautilus: qa: stop using kclient testing branch builds 37508/head
Ramana Raja [Thu, 1 Oct 2020 16:35:30 +0000 (22:05 +0530)]
nautilus: qa: stop using kclient testing branch builds

... in kcephfs and multimds suites.

This is a nautilus only fix. In master and octopus we still use
kclient testing branch builds.

Fixes: https://tracker.ceph.com/issues/47642
Signed-off-by: Ramana Raja <rraja@redhat.com>
4 years agoMerge pull request #37467 from smithfarm/wip-47322-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:30:32 +0000 (10:30 -0700)]
Merge pull request #37467 from smithfarm/wip-47322-nautilus

nautilus: rgw: replace '+' with "%20" in canonical query string for s3 v4 auth.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37465 from smithfarm/wip-47318-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:30:07 +0000 (10:30 -0700)]
Merge pull request #37465 from smithfarm/wip-47318-nautilus

nautilus: rgw: Expiration days can't be zero and  transition days can be zero

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37464 from smithfarm/wip-47315-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:29:39 +0000 (10:29 -0700)]
Merge pull request #37464 from smithfarm/wip-47315-nautilus

nautilus: rgw: radosgw-admin: period pull command is not always a raw_storage_op

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37463 from smithfarm/wip-46956-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:29:01 +0000 (10:29 -0700)]
Merge pull request #37463 from smithfarm/wip-46956-nautilus

nautilus: rgw: fix shutdown crash in RGWAsyncReadMDLogEntries

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37462 from smithfarm/wip-46950-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:28:30 +0000 (10:28 -0700)]
Merge pull request #37462 from smithfarm/wip-46950-nautilus

nautilus: rgw/cls: preserve olh entry's name on last unlink

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37461 from smithfarm/wip-46930-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:28:05 +0000 (10:28 -0700)]
Merge pull request #37461 from smithfarm/wip-46930-nautilus

nautilus: rgw: Empty reqs_change_state queue before unregistered_reqs

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37460 from smithfarm/wip-46594-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:27:37 +0000 (10:27 -0700)]
Merge pull request #37460 from smithfarm/wip-46594-nautilus

nautilus: rgw: add negative cache to the system object

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37459 from smithfarm/wip-47320-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:26:42 +0000 (10:26 -0700)]
Merge pull request #37459 from smithfarm/wip-47320-nautilus

nautilus: rgw: RGWObjVersionTracker tracks version over increments

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37438 from Vicente-Cheng/wip-47347-nautilus
Yuri Weinstein [Wed, 30 Sep 2020 17:25:44 +0000 (10:25 -0700)]
Merge pull request #37438 from Vicente-Cheng/wip-47347-nautilus

nautilus: rgw: Swift API anonymous access should 401

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37472 from smithfarm/wip-46587-nautilus
Neha Ojha [Tue, 29 Sep 2020 23:51:44 +0000 (16:51 -0700)]
Merge pull request #37472 from smithfarm/wip-46587-nautilus

nautilus: doc/rados: Fix osd_scrub_during_recovery default value

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoradosgw-admin: period pull command is not always a raw_storage_op 37464/head
Casey Bodley [Mon, 31 Aug 2020 15:19:34 +0000 (11:19 -0400)]
radosgw-admin: period pull command is not always a raw_storage_op

if a --url is given, 'period pull' does not depend on any zone/period
configuration and can be a raw_storage_op. if we get a --remote instead,
we do need to initialize the zone/period configuration to find the
correct endpoint/access keys

Fixes: https://tracker.ceph.com/issues/47217
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 2b44a9d060d33dca9768c758e1908365488aac2a)

Conflicts:
src/rgw/rgw_admin.cc
- nautilus has different (but unrelatedly so) raw_storage_ops_list

4 years agodoc/rados: Fix osd_scrub_during_recovery default value 37472/head
Benoît Knecht [Tue, 14 Jul 2020 11:50:28 +0000 (13:50 +0200)]
doc/rados: Fix osd_scrub_during_recovery default value

Since 8dca17c, `osd_scrub_during_recovery` defaults to `false`, but the
documentation was still stating that its default value is `true`.

Fixes: https://tracker.ceph.com/issues/46531
Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
(cherry picked from commit 535b103d1848f8b5322af0815e1bf163267d7f2a)

4 years agorgw: replace '+' with "%20" in canonical query string for s3 37467/head
yuliyang_yewu [Wed, 22 Jul 2020 02:05:17 +0000 (10:05 +0800)]
rgw: replace '+' with "%20" in canonical query string for s3
 v4 auth.

fix https://tracker.ceph.com/issues/45983

Signed-off-by: yuliyang_yewu <yuliyang_yewu@cmss.chinamobile.com>
(cherry picked from commit 9002be34aa8524816708db4f3429bfe8634b776a)

4 years agorgw: transitio days can be zero in transition check 37465/head
zhang Shaowen [Fri, 18 Oct 2019 01:17:32 +0000 (09:17 +0800)]
rgw: transitio days can be zero in transition check

Signed-off-by: zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
(cherry picked from commit 191fc25a97cb748f1105a463e9772194ba724d97)

4 years agorgw: Expiration days can't be zero and transition days can be zero
zhang Shaowen [Sat, 12 Oct 2019 09:59:23 +0000 (17:59 +0800)]
rgw: Expiration days can't be zero and  transition days can be zero

Signed-off-by: zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
(cherry picked from commit b471fd07aa7d9ca7868572688baf89ca5a295e6f)

4 years agorgw: fix shutdown crash in RGWAsyncReadMDLogEntries 37463/head
Casey Bodley [Fri, 29 May 2020 16:31:16 +0000 (12:31 -0400)]
rgw: fix shutdown crash in RGWAsyncReadMDLogEntries

RGWAsyncReadMDLogEntries must not store pointers into coroutine memory,
because it's not guaranteed to outlive our call. store these by-value
instead, and have RGWReadMDLogEntriesCR::request_complete() copy/move
them back on completion

Fixes: https://tracker.ceph.com/issues/45771
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 13bf06dbe961132ca99f470ac026674e45fecc38)

Conflicts:
src/rgw/rgw_sync.cc
- difference in RGWAsyncReadMDLogEntries() argument list: in nautilus,
  "rgw::sal::RGWRadosStore *_store" becomes just plain "RGWRados
  *_store"

4 years agocls/rgw: preserve olh entry's name on last unlink 37462/head
Casey Bodley [Fri, 10 Jul 2020 16:38:06 +0000 (12:38 -0400)]
cls/rgw: preserve olh entry's name on last unlink

When rgw_bucket_unlink_instance removes the last instance of a name, it
also clears the value of rgw_bucket_olh_entry.key. However, bucket index
resharding uses this key when choosing its shard placement, so an empty
key causes all of these olh entries to be misplaced in shard 0. After
reshard, all of the olh recovery/cleanup logic would be sent to the
correct shard, and these misplaced olh entries would never be cleaned
up.

Preserving the key's name on last unlink allows the olh entry to be
resharded correctly and cleaned up normally.

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

4 years agorgw: Empty reqs_change_state queue before unregistered_reqs 37461/head
Soumya Koduri [Tue, 16 Jun 2020 12:40:08 +0000 (18:10 +0530)]
rgw: Empty reqs_change_state queue before unregistered_reqs

In RGWHTTPManager::manage_pending_request(), before unregistering
or unlinking the http requests, empty the reqs_change_state list
to avoid use after free.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
(cherry picked from commit b210437e5f28d53e770dd6938ce3c4be443da055)

4 years agorgw: ObjectCache::put() clears stale objv 37459/head
Casey Bodley [Tue, 8 Sep 2020 19:27:55 +0000 (15:27 -0400)]
rgw: ObjectCache::put() clears stale objv

if an existing object is cached with an object version, but it's
mutated without updating that version number, clear the OBJV flag so
that later cache reads asking for an object version result in a miss and
re-read the version from the osd

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

4 years agorgw: system object cache tracks version over increments
Casey Bodley [Thu, 6 Aug 2020 16:57:13 +0000 (12:57 -0400)]
rgw: system object cache tracks version over increments

instead of checking write_version before the write (which doesn't take
cls_version_inc() into account), check read_version after apply_write()
has been called. only cache the result if we got a read_version != 0

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

Conflicts:
src/rgw/services/svc_sys_obj_cache.cc
- in nautilus, the functions do not take an optional_yield argument

4 years agorgw: RGWObjVersionTracker tracks read version over increments
Casey Bodley [Tue, 4 Aug 2020 19:03:35 +0000 (15:03 -0400)]
rgw: RGWObjVersionTracker tracks read version over increments

when no write_version is given, cls_version_inc() is used to increment
the version so other writers can use cls_version_check() to detect races

however, apply_write() will clear its cached read_version, which means
that later writes can no longer use cls_version_check() to detect other
racing writers

in cases where cls_version_inc() is used AND we know the previous version,
we can increment the cached read_version and preserve the ability to use
cls_version_check(). we know the previous version if we provided a valid
read_version to cls_version_check() and it succeeded

Fixes: https://tracker.ceph.com/issues/46849
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 298d721c1d3d8d430bfbc9e0ef5db7b44cdbe017)

Conflicts:
src/rgw/rgw_rados.cc
- nautilus does not have "RGWObjState::RGWObjState()"

4 years agorgw: add negative cache to the system object 37460/head
Or Friedmann [Wed, 24 Jun 2020 12:55:20 +0000 (15:55 +0300)]
rgw: add negative cache to the system object

add negative cache to the system object

Signed-off-by: Or Friedmann <ofriedma@redhat.com>
Fixes: https://tracker.ceph.com/issues/45816
(cherry picked from commit 0900bd8cf90babd6fafcb398854a4ddb071a27ee)

Conflicts:
src/rgw/services/svc_sys_obj_cache.cc
- RGWSI_SysObj_Core::raw_stat() takes different arguments in nautilus

4 years agoMerge pull request #37181 from callithea/wip-47411-nautilus
Yuri Weinstein [Tue, 29 Sep 2020 15:16:08 +0000 (08:16 -0700)]
Merge pull request #37181 from callithea/wip-47411-nautilus

nautilus: mgr: don't update pending service map epoch on receiving map from mon

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mykola Golub <mgolub@mirantis.com>
4 years agoMerge pull request #37379 from shyukri/wip-46939-nautilus
Yuri Weinstein [Mon, 28 Sep 2020 21:02:24 +0000 (14:02 -0700)]
Merge pull request #37379 from shyukri/wip-46939-nautilus

nautilus: qa/tasks/ragweed: always set ragweed_repo

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
4 years agoMerge pull request #37280 from ceph/nautilus-bucket-list-perf
Yuri Weinstein [Mon, 28 Sep 2020 21:01:17 +0000 (14:01 -0700)]
Merge pull request #37280 from ceph/nautilus-bucket-list-perf

nautilus: mgr/dashboard: fix perf. issue when listing large amounts of buckets

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
4 years agoMerge pull request #36909 from ifed01/wip-ifed-fix-bluefs-sel-nautilus
Yuri Weinstein [Mon, 28 Sep 2020 21:00:25 +0000 (14:00 -0700)]
Merge pull request #36909 from ifed01/wip-ifed-fix-bluefs-sel-nautilus

nautilus: bluestore/bluefs: make accounting resiliant to unlock()

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
4 years agoMerge pull request #37378 from shyukri/wip-47244-nautilus
Yuri Weinstein [Mon, 28 Sep 2020 16:31:04 +0000 (09:31 -0700)]
Merge pull request #37378 from shyukri/wip-47244-nautilus

nautilus: rgw: Add bucket name to bucket stats error logging

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agorgw: Swift API anonymous access should 401 37438/head
Matthew Oliver [Thu, 9 Jul 2020 06:13:05 +0000 (06:13 +0000)]
rgw: Swift API anonymous access should 401

There was a previous patch to fix this but turns out that only fixed it
for the Swift V1 auth. And it actaully broke keystone because it didn't
take into account the idiosyncrasies of multi tenancy. Which resulted in
the incorect behaviour for keystone. Worse, because it didn't take
tenants properly into account keystone ACLs where broken.

This patch reworks, and simplifies the original patch to work for both
auths. It even extends the ThirdPartyAccountApplier to check for an ANON
user and properly scope it to a tenant.

Fixes: https://tracker.ceph.com/issues/46295
Signed-off-by: Matthew Oliver <moliver@suse.com>
(cherry picked from commit 67081098dc2dddd80d52d5acd166e68954cae618)

Conflicts:
src/rgw/rgw_swift_auth.h
  - only need to modify the user related code to rgw_user construct

4 years agoMerge pull request #36704 from ShyamsundarR/wip-47013-nautilus
Yuri Weinstein [Mon, 28 Sep 2020 14:51:30 +0000 (07:51 -0700)]
Merge pull request #36704 from ShyamsundarR/wip-47013-nautilus

nautilus: mon: store mon updates in ceph context for future MonMap instantiation

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
4 years agoMerge pull request #37306 from p-se/wip-47546-nautilus
Laura Paduano [Mon, 28 Sep 2020 13:28:38 +0000 (15:28 +0200)]
Merge pull request #37306 from p-se/wip-47546-nautilus

nautilus: mgr/dashboard: Fix many-to-many issue in host-details Grafana dashboard

Reviewed-by: Ernesto Puertat <epuertat@redhat.com>
Reviewed-by: Jan Fajerski <jfajerski@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
4 years agoMerge pull request #37307 from rhcs-dashboard/wip-47303-nautilus
Yuri Weinstein [Fri, 25 Sep 2020 15:46:31 +0000 (08:46 -0700)]
Merge pull request #37307 from rhcs-dashboard/wip-47303-nautilus

nautilus: mgr/dashboard: REST API returns 500 when no Content-Type is specified

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
4 years agoMerge pull request #37407 from idryomov/wip-krbd-read-only-override-nautilus
Ilya Dryomov [Fri, 25 Sep 2020 15:36:26 +0000 (17:36 +0200)]
Merge pull request #37407 from idryomov/wip-krbd-read-only-override-nautilus

nautilus: rbd: make common options override krbd-specific options

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agorbd: make common options override krbd-specific options 37407/head
Ilya Dryomov [Fri, 25 Sep 2020 07:55:04 +0000 (09:55 +0200)]
rbd: make common options override krbd-specific options

ceph-csi has added support for passing custom map and unmap options via
mapOptions and unmapOptions storage class parameters.  However, it also
uses --read-only for implementing ROX (ReadOnlyMany) PVs.  If the user
supplies "mapOptions: rw", they will get around the intended read-only
restriction (at least on the block device).

ceph-csi could be patched to use "-o ro", but it actually makes sense
for common options to win over device type-specific equivalents.

Fixes: https://tracker.ceph.com/issues/47625
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit a107c47360ecdb8c09768ca9eab2341100245711)

Conflicts:
src/tools/rbd/action/Kernel.cc [ snapshot quiesce support and
  commit 34f539d8af33 ("rbd: delay parsing of default kernel map
  options") not in nautilus ]

4 years agonautilus: mgr/dashboard: fix perf. issue when listing large amounts of buckets 37280/head
Alfonso Martínez [Mon, 21 Sep 2020 13:59:38 +0000 (15:59 +0200)]
nautilus: mgr/dashboard: fix perf. issue when listing large amounts of buckets

NOTE: Due to base code divergence between master (pacific) & nautilus,
This is a dedicated fix for nautilus.

Fixes: https://tracker.ceph.com/issues/47618
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
4 years agoMerge pull request #37254 from bstillwell/wip-47425-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 22:25:55 +0000 (15:25 -0700)]
Merge pull request #37254 from bstillwell/wip-47425-nautilus

nautilus: compressor: Add a config option to specify Zstd compression level

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
4 years agoMerge pull request #37269 from badone/wip-nautilus-enable-mgr-client-debug
Yuri Weinstein [Thu, 24 Sep 2020 22:25:32 +0000 (15:25 -0700)]
Merge pull request #37269 from badone/wip-nautilus-enable-mgr-client-debug

nautilus: tests/qa: Enable debug_client for mgr tests

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
4 years agoMerge pull request #37318 from yaarith/nautilus-fix-dev-id-split
Yuri Weinstein [Thu, 24 Sep 2020 22:14:45 +0000 (15:14 -0700)]
Merge pull request #37318 from yaarith/nautilus-fix-dev-id-split

nautilus: mgr/telemetry: fix device id splitting when anonymizing serial

Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
4 years agoMerge pull request #37288 from yaarith/nautilus-add-smartctl-nvme-dependencies
Yuri Weinstein [Thu, 24 Sep 2020 22:12:37 +0000 (15:12 -0700)]
Merge pull request #37288 from yaarith/nautilus-add-smartctl-nvme-dependencies

nautilus: ceph.spec.in, debian/control: add smartmontools and nvme-cli dependen…

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #37324 from aaSharma14/wip-47570-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 20:45:29 +0000 (13:45 -0700)]
Merge pull request #37324 from aaSharma14/wip-47570-nautilus

nautilus: mgr/dashboard: table detail rows overflow

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
4 years agoMerge pull request #37309 from rhcs-dashboard/wip-47579-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 20:44:49 +0000 (13:44 -0700)]
Merge pull request #37309 from rhcs-dashboard/wip-47579-nautilus

nautilus: mgr/dashboard: fix pool usage calculation

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
4 years agoMerge pull request #37226 from smithfarm/wip-47532-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 20:44:10 +0000 (13:44 -0700)]
Merge pull request #37226 from smithfarm/wip-47532-nautilus

nautilus: ceph.in: ignore failures to flush stdout

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #36984 from k0ste/wip-47281-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 20:43:36 +0000 (13:43 -0700)]
Merge pull request #36984 from k0ste/wip-47281-nautilus

nautilus: prometheus: Properly split the port off IPv6 addresses

Reviewed-by: Jan Fajerski <jfajerski@suse.com>
4 years agoMerge pull request #37209 from smithfarm/wip-46983-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 15:03:20 +0000 (08:03 -0700)]
Merge pull request #37209 from smithfarm/wip-46983-nautilus

nautilus: test/rbd-mirror: pool watcher registration error might result in race

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #37165 from dillaman/wip-47100-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 15:01:59 +0000 (08:01 -0700)]
Merge pull request #37165 from dillaman/wip-47100-nautilus

nautilus:  librbd: using migration abort can result in the loss of data

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
4 years agoMerge pull request #37157 from smithfarm/wip-46519-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 15:00:46 +0000 (08:00 -0700)]
Merge pull request #37157 from smithfarm/wip-46519-nautilus

nautilus: rgw: fix boost::asio::async_write() does not return error...

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37040 from trociny/wip-46720-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 14:59:52 +0000 (07:59 -0700)]
Merge pull request #37040 from trociny/wip-46720-nautilus

nautilus: librbd: don't resend async_complete if watcher is unregistered

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agoMerge pull request #36880 from smithfarm/wip-47186-nautilus
Yuri Weinstein [Thu, 24 Sep 2020 14:59:10 +0000 (07:59 -0700)]
Merge pull request #36880 from smithfarm/wip-47186-nautilus

nautilus: rgw: dump transitions in RGWLifecycleConfiguration::dump()

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #36843 from Huber-ming/nautilus-loglevel
Yuri Weinstein [Thu, 24 Sep 2020 14:58:23 +0000 (07:58 -0700)]
Merge pull request #36843 from Huber-ming/nautilus-loglevel

nautilus: rgw: log resharding events at level 1 (formerly 20)

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agoMerge pull request #37195 from guits/wip-47504-nautilus
Jan Fajerski [Thu, 24 Sep 2020 12:17:29 +0000 (14:17 +0200)]
Merge pull request #37195 from guits/wip-47504-nautilus

nautilus: ceph-volume: fix simple activate when legacy osd

4 years agoMerge pull request #37295 from rhcs-dashboard/wip-47573-nautilus
Lenz Grimmer [Thu, 24 Sep 2020 08:31:32 +0000 (10:31 +0200)]
Merge pull request #37295 from rhcs-dashboard/wip-47573-nautilus

nautilus: mgr/dashboard: cpu stats incorrectly displayed

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Patrick Seidensal <pnawracay@suse.com>
4 years agoMerge pull request #37033 from smithfarm/wip-47350-nautilus
Yuri Weinstein [Wed, 23 Sep 2020 19:21:28 +0000 (12:21 -0700)]
Merge pull request #37033 from smithfarm/wip-47350-nautilus

nautilus: core: include/encoding: Fix encode/decode of float types on big-endian systems

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
4 years agoqa/tasks/ragweed: always set ragweed_repo 37379/head
Kefu Chai [Thu, 30 Jul 2020 08:45:40 +0000 (16:45 +0800)]
qa/tasks/ragweed: always set ragweed_repo

* extract get_ragweed_branch() out of download() task, for better
  readablity.
* use a loop for retry when the first clone fails
* drop the `raise ValueError()` clause as it never happens. we could use
  an assert() here, but i don't think it is necessary anyway.
* use sh() instead of run() for better readablity.
* always set ragweed_repo. before this change this variable is
  unbounded if `force-branch` is set.

Fixes: https://tracker.ceph.com/issues/46771
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 87e61e1d6ece9874cd8776dde92ca815e8002166)

4 years agorgw: Add bucket name to bucket stats error logging 37378/head
Seena Fallah [Mon, 20 Apr 2020 22:05:08 +0000 (02:35 +0430)]
rgw: Add bucket name to bucket stats error logging

Signed-off-by: Seena Fallah <seeenafallah@gmail.com>
(cherry picked from commit 1d58bc52774de80689b1f04d46f8f587a09df206)

4 years agoMerge pull request #37169 from ivancich/nautilus-47487
Yuri Weinstein [Wed, 23 Sep 2020 15:27:05 +0000 (08:27 -0700)]
Merge pull request #37169 from ivancich/nautilus-47487

nautilus: rgw: ordered bucket listing code clean-up

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 years agomgr/dashboard: table detail rows overflow 37324/head
Aashish Sharma [Wed, 16 Sep 2020 06:49:10 +0000 (12:19 +0530)]
mgr/dashboard: table detail rows overflow

Added word-wrap to the rgw-bucket-details table rows to fix overflow of values

Fixes:https://tracker.ceph.com/issues/47434
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit 7196e03449d585a6b7e1e4065120a571fe2ab894)

4 years agorgw: dump transitions in RGWLifecycleConfiguration::dump() 36880/head
Shengming Zhang [Sat, 18 Jul 2020 06:16:34 +0000 (14:16 +0800)]
rgw: dump transitions in RGWLifecycleConfiguration::dump()

Signed-off-by: Shengming Zhang <zhangsm01@inspur.com>
(cherry picked from commit c843b6f08799c1fef39a4a6fd24c27207d1e951e)

Conflicts:
src/rgw/rgw_json_enc.cc
- trivial whitespace difference
- dump_object() accepts string_view in master branch, but accepts char*
  in nautilus branch

4 years agoMerge pull request #36863 from batrick/i47178
Yuri Weinstein [Tue, 22 Sep 2020 19:49:18 +0000 (12:49 -0700)]
Merge pull request #36863 from batrick/i47178

nautilus: qa/tasks/vstart_runner: use parent's umount methods

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
4 years agomgr/telemetry: fix device id splitting when anonymizing serial 37318/head
Yaarit Hatuka [Thu, 27 Aug 2020 03:04:34 +0000 (23:04 -0400)]
mgr/telemetry: fix device id splitting when anonymizing serial

Anonymizing the serial number in the device id string fails in rare
cases where 'vendor' and 'model' are missing from the device id
string. Ideally, device id is generated (in blkdev.cc) as
'vendor_model_serial', in case all fields were successfully retrieved
from the device. In cases where they were not, device id can also be
generated as 'model_serial' or 'serial'. Splitting by '_' fails in the
latter case (since 'serial' is the only element in the string).

In order to anonymize serial numbers in smartctl reports we now rely
on the serial number value as retrieved from the raw smartctl report
itself (as opposed to the one in device id). That's in order to avoid
possible inconsistencies between the serial retrieved from device id and
the one in the report.

Fixes: https://tracker.ceph.com/issues/46977
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
(cherry picked from commit e5099a7b58bcf39d80beb908c192c3bf639db1a4)

Conflicts:
src/pybind/mgr/telemetry/module.py

In master we use Python 3's f-string formatting to create 'anon_devid':
anon_devid = f"{devid.rsplit('_', 1)[0]}_{uuid.uuid1()}"

The conflict happened since Nautilus still uses Python 2, and 'anon_id'
is created via string concatenation.
anon_devid = devid[:devid.rfind('_')] + '_' + str(uuid.uuid1())

4 years agoMerge pull request #37283 from yuriw/wip-yuriw-47561-nautilus
Yuri Weinstein [Tue, 22 Sep 2020 14:19:38 +0000 (07:19 -0700)]
Merge pull request #37283 from yuriw/wip-yuriw-47561-nautilus

nautilus: qa/tests: removed ../stress-split/7-final-workload/rbd-python.yaml

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #37278 from tspmelo/wip-47558-nautilus
Laura Paduano [Tue, 22 Sep 2020 14:08:38 +0000 (16:08 +0200)]
Merge pull request #37278 from tspmelo/wip-47558-nautilus

nautilus: mgr/dashboard: Allow editing iSCSI targets with initiators logged-in

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
4 years agomgr/dashboard: REST API returns 500 when no Content-Type is specified 37307/head
Avan Thakkar [Wed, 29 Jul 2020 17:56:04 +0000 (23:26 +0530)]
mgr/dashboard: REST API returns 500 when no Content-Type is specified

Fixes: https://tracker.ceph.com/issues/41060
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
(cherry picked from commit ea031de0908a249b416617a1d9cc806c356520e4)
(cherry picked from commit a5bf74e6a6c7678bbb3689a4b52fe817418da58b)
(cherry picked from commit 9dd629ca7ea5bafe883f48d257386a8c5d32c1c7)

4 years agomgr/dashboard: fix pool usage calculation 37309/head
Ernesto Puerta [Thu, 25 Jun 2020 09:17:22 +0000 (11:17 +0200)]
mgr/dashboard: fix pool usage calculation

Currently Dashboard Pool usage calculation does not match the output of
'ceph df' command.

Fixes: https://tracker.ceph.com/issues/45185
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
(cherry picked from commit b4a9dc17a3de90379964443d26b29f1759824f28)

Conflicts:
qa/tasks/mgr/dashboard/helper.py
src/mon/PGMap.cc
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/usage-bar/usage-bar.component.ts:
        - Keep UsageBar component totalBytes/usedBytes names
        - Bring new UsageBar option decimal
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
4 years agomgr/dashboard: Fix many-to-many issue in host-details dashboard 37306/head
Patrick Seidensal [Mon, 7 Sep 2020 10:29:36 +0000 (12:29 +0200)]
mgr/dashboard: Fix many-to-many issue in host-details dashboard

The labels on one side do not match the labels of the other side, where
a label_replace is used. The fix uses the same label_replace on the
missing side.

Fixes: https://tracker.ceph.com/issues/47334
Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
(cherry picked from commit fe64b9d1763ec9dbe78fe73c403929524ab4e253)

4 years agoMerge pull request #37284 from idryomov/wip-krbd-noudev-nautilus
Ilya Dryomov [Tue, 22 Sep 2020 07:52:48 +0000 (09:52 +0200)]
Merge pull request #37284 from idryomov/wip-krbd-noudev-nautilus

nautilus: krbd: optionally skip waiting for udev events

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
4 years agomgr/dashboard: cpu stats incorrectly displayed 37295/head
Avan Thakkar [Thu, 23 Jul 2020 06:27:32 +0000 (11:57 +0530)]
mgr/dashboard: cpu stats incorrectly displayed

Fixes: https://tracker.ceph.com/issues/46683
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
(cherry picked from commit f039e5585d552c553e37a5f68713cfe2b109b97f)

4 years agoceph.spec.in, debian/control: add smartmontools and nvme-cli dependencies 37288/head
Yaarit Hatuka [Fri, 18 Sep 2020 03:25:56 +0000 (03:25 +0000)]
ceph.spec.in, debian/control: add smartmontools and nvme-cli dependencies

These packages are needed in order to scrape device health metrics from
devices used by OSD and MON daemons.

smartmontools' smartctl is what we use in order to scrape devices' SMART
attributes and general health metrics.
In addition, we use nvme-cli tool on NVMe devices, which fetches
vendor specific NVMe related health metrics.

Ceph rely on these tools for proper functioning of the underlying layers
of devicehealth mgr module, and other mgr modules which use devicehealth
functionality (such as diskprediction_local, telemetry, dashboard).

Essentially, most of devicehealth commands rely on proper functioning of
smartctl, otherwise they lack the device health metrics.

For example, in case smartctl is missing, the commands:
    ceph device scrape-daemon-health-metrics <who>
    ceph device scrape-health-metrics [<devid>]
will not be able to scrape health metrics, and the command:
    ceph device predict-life-expectancy <devid>
will not provide any meaningful output (since there are no metrics).

In short, when we scrape a device by its daemon (be it an OSD or a MON):
  ceph device scrape-daemon-health-metrics <who>
The devicehealth module command eventually invokes a
block_device_get_metrics() call in either osd/OSD.cc or mon/Monitor.cc,
which wraps calls to both
    block_device_run_smartctl()       (spawns smartctl)
    block_device_run_vendor_nvme()    (spawns nvme)
in common/blkdev.cc.

Minimum version requirements:
'smartmontools' is the package name, which contains two utility
programs: 'smartd' and 'smartctl'. Ceph uses the latter.

Version 6.7 of smartctl first introduced the --json option (beta), which
allows to output the metrics in a JSON format. Since then a few
adjustments were made and the feature officially launched in smartctl
version 7.0.
Since we rely on the JSON format to process the metrics, we must have
smartmontools' smartctl version >= 7.

That said, we choose not to specify smartmontools version here on
purpose, since there might be a scenario where:
We specified smartmontools version to be >= 7.
smartmontools 7 is not available yet in rhel 8 / centos 8.
A user installs via rpm ceph-osd, for example.
smartmontools will not be installed (since version >= 7 is not available
in this repo yet).
Then the user upgrades to 8.3 (which should have smartmontools >= 7),
but smartmontools will not get upgraded (since it's not installed).
In the scenario where we do not specify a version, smartmontools 6.6
will be installed, but it will be upgraded to >= 7 when a user upgrades
(and if it's a fresh installation - version >= 7 would be installed
anyway).

nvme-cli does not have a minimum version.

We use 'Recommends' for both rpm and deb packages since we do not want
the installation to fail in case of conflicts. 'Recommends' weakens the
dependency to be installed in case possible, but ignores it in cases of
conflicts with other dependencies.

It's worth mentioning that smartmontools and nvme-cli dependencies exist
in ceph-container builds.
We add them here for the cases of bare metal installations.

In the future we will add a separate package (with smartmontools and
nvme-cli dependencies) that can be installed on any node (running
rbd-mirror, rgw, mds, mgr, etc.), in order to be able to collect the
health metrics of its devices and offer their life expectancy
prediction.

Fixes: https://tracker.ceph.com/issues/47479
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
(cherry picked from commit d5528a7e8e3b8289288d5a0a55d57d9935a3966c)

Conflicts:
    ceph.spec.in

Had to remove the line:
    Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
which slipped in between
    Requires: libstoragemgmt
and
    %if 0%{?weak_deps}

Also, removed from the cherry-picked commit the dependencies for mon package
from both ceph.spec.in and debian/control.
That's because in Nautilus we do not scrape the health metrics of mon devices
(please see commit d592e56e74d94c6a05b9240fcb0031868acefbab).

4 years agoMerge pull request #37051 from trociny/wip-47362-nautilus
Yuri Weinstein [Mon, 21 Sep 2020 19:50:20 +0000 (12:50 -0700)]
Merge pull request #37051 from trociny/wip-47362-nautilus

nautilus: os/bluestore: fix collection_list ordering

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoqa/tests: removed ../stress-split/7-final-workload/rbd-python.yaml 37283/head
Yuri Weinstein [Mon, 21 Sep 2020 17:26:26 +0000 (10:26 -0700)]
qa/tests: removed ../stress-split/7-final-workload/rbd-python.yaml

Fixes: https://tracker.ceph.com/issues/47561
Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
4 years agoMerge pull request #36828 from batrick/i47152
Yuri Weinstein [Mon, 21 Sep 2020 15:21:47 +0000 (08:21 -0700)]
Merge pull request #36828 from batrick/i47152

nautilus: pybind/mgr/volumes: add global lock debug

Reviewed-by: Venky Shankar <vshankar@redhat.com>
4 years agoMerge pull request #36714 from kotreshhr/wip-46948-nautilus
Yuri Weinstein [Mon, 21 Sep 2020 15:20:44 +0000 (08:20 -0700)]
Merge pull request #36714 from kotreshhr/wip-46948-nautilus

nautilus: qa: Fix traceback during fs cleanup between tests

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge pull request #36181 from smithfarm/wip-46592-nautilus
Yuri Weinstein [Mon, 21 Sep 2020 15:20:06 +0000 (08:20 -0700)]
Merge pull request #36181 from smithfarm/wip-46592-nautilus

nautilus: common:  ignore SIGHUP prior to fork

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoqa: add test for mapping and unmapping from a network namespace 37284/head
Ilya Dryomov [Wed, 16 Sep 2020 14:38:10 +0000 (16:38 +0200)]
qa: add test for mapping and unmapping from a network namespace

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit d2884adb1542de7a43f82eb899056aa74de95052)

4 years agoceph-volume: fix wrong type passed in terminal.warning() 37195/head
Guillaume Abrioux [Fri, 18 Sep 2020 11:51:51 +0000 (13:51 +0200)]
ceph-volume: fix wrong type passed in terminal.warning()

`terminal.warning()` excepts a `str`.
Passing `e` means we pass a type `exceptions.RuntimeError`

Changing to `terminal.warning(e.message)` fixes the issue.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1877672
Resolves: rhbz#1877672

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit a1f42c8d7b3fe08da82c528038d8db9ccdd5c98a)

4 years agoceph-volume: fix simple activate when legacy osd
Guillaume Abrioux [Thu, 10 Sep 2020 23:13:06 +0000 (01:13 +0200)]
ceph-volume: fix simple activate when legacy osd

`ceph-volume simple activate --all` relies on the presence of json files
in `/etc/ceph/osd` that was created with `ceph-volume simple scan`
command.

In a cluster lifecycle, it is very likely an OSD which was deployed with
ceph-disk at some point gets removed or replaced. It means the corresponding
json file in `/etc/ceph/osd` becomes unrelevant. It makes `ceph-volume
simple activate --all` fails because it tries to mount non existing
partitions.
The idea here is to simply warn the user that the osd described in the
json file doesn't exist anymore and exit properly instead of throwing an
error.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1877672
Closes: https://tracker.ceph.com/issues/47493
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit a3e9e215bda110b3224e165bee6565943b3f3c14)

4 years agomgr/dashboard: Allow editing iSCSI targets with initiators logged-in 37278/head
Tiago Melo [Mon, 7 Sep 2020 09:47:19 +0000 (09:47 +0000)]
mgr/dashboard: Allow editing iSCSI targets with initiators logged-in

Fixes: https://tracker.ceph.com/issues/47393
Signed-off-by: Tiago Melo <tmelo@suse.com>
(cherry picked from commit 6de09f131074294b71e47ab0e168036a1fcc35fe)

4 years agoqa: Enable debug_client for mgr tests 37269/head
Brad Hubbard [Wed, 16 Sep 2020 02:16:23 +0000 (12:16 +1000)]
qa: Enable debug_client for mgr tests

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
(cherry picked from commit 926e06caf5c1262ab1268126d1d775897ff87471)

4 years agomon: allow overriding the initial mon_host 36704/head
Patrick Donnelly [Wed, 16 Sep 2020 19:28:55 +0000 (12:28 -0700)]
mon: allow overriding the initial mon_host

This overrides what the CephContext believes to be the current quorum of
monitors (retrieved from other instances of the MonClient), introduced
by [1]. Tests need to be able to target a specific monitor for
exercising forwarding and other things.

[1] 731e2db9fb4611f767446a3c8e778a097ce70d35
Fixes: https://tracker.ceph.com/issues/47180
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Signed-off-by: Shyamsundar Ranganathan <srangana@redhat.com>
(cherry picked from commit ed3782e60afa0da2f523fc6df7b593fe7a57646a)

Conflicts:
PendingReleaseNotes
Retained nautilus release notes with the required addition as above

4 years agomon: store mon updates in ceph context for future MonMap instantiation
Shyamsundar Ranganathan [Mon, 10 Aug 2020 00:47:43 +0000 (20:47 -0400)]
mon: store mon updates in ceph context for future MonMap instantiation

MonMap builds initial mon list using provided sources, like
mon-host or monmap.

For future instantiations of MonClient, if mon addresses are
updated, stale information from the provided sources are used.

This commit retains mon updates that are processed by the
MonClient in CephContext, for use in MonMap instantiations
and hence uses updated information as required.

This is helpful in cases where librados or libcephfs
instantiate MonClient in the ceph-mgr deamon as required.

Fixes: https://tracker.ceph.com/issues/46645
Signed-off-by: Shyamsundar Ranganathan <srangana@redhat.com>
(cherry picked from commit 7a1f02acfe6b5d8a760efd16bb594a0656b39eac)
Conflicts:
    src/mon/MonMap.h
Retain crimson namespace as ceph::common
    src/mon/MonMap.cc
Address merge conflict due to linespace removed
    src/common/ceph_context.cc
Remove WITH_ALIEN latch
    src/common/ceph_context/h
Remove WITH_ALIEN latch

4 years agocompressor: Set the Zstd default compression level to 1 37254/head
Bryan Stillwell [Tue, 24 Mar 2020 21:15:41 +0000 (15:15 -0600)]
compressor: Set the Zstd default compression level to 1

The default compression level of 5 for Zstandard is too high for the majority
of use cases since it requires too many CPU cycles.  This patch switches the
default to 1.

Fixes: https://tracker.ceph.com/issues/44724
Signed-off-by: Bryan Stillwell <bstillwell@godaddy.com>
(cherry picked from commit caf74d533b0c6c9e6fc5b1463ae2c3be1103d7f3)

4 years agocompressor: Add a config option to specify Zstd compression level
Bryan Stillwell [Fri, 6 Mar 2020 17:58:50 +0000 (10:58 -0700)]
compressor: Add a config option to specify Zstd compression level

Add a new configuration item called 'compressor_zstd_level' so that the
Zstandard compression level can be tuned to the workload on a cluster.

Fixes: https://tracker.ceph.com/issues/43377
Signed-off-by: Bryan Stillwell <bstillwell@godaddy.com>
(cherry picked from commit 82699067b89eab01744f1b7f10490ec0975bb1a6)

4 years agoMerge pull request #37161 from rhcs-dashboard/alert-loading
Lenz Grimmer [Fri, 18 Sep 2020 10:56:59 +0000 (12:56 +0200)]
Merge pull request #37161 from rhcs-dashboard/alert-loading

nautilus: mgr/dashboard: Monitoring: Fix for the infinite loading bar action

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
4 years agoceph.in: ignore failures to flush stdout 37226/head
Dan van der Ster [Mon, 14 Sep 2020 14:23:53 +0000 (16:23 +0200)]
ceph.in: ignore failures to flush stdout

Catch an IOError exception when flushing ceph stdout.

Fixes: https://tracker.ceph.com/issues/47442
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
(cherry picked from commit 48503413a28fbea32f8ef3d48cb765771216f165)

4 years agomgr/dashboard: Monitoring: Fix for the infinite loading bar action 37161/head
nizamial09 [Tue, 15 Sep 2020 13:01:52 +0000 (18:31 +0530)]
mgr/dashboard: Monitoring: Fix for the infinite loading bar action

Only seen in nautilus
Intended to fix the unusual behaviour in the All Alerts tab where the loading bar progressess continously until one of the alerts is selected.

To reproduce:
Navigate to cluster -> Monitoring -> All Alerts tab. You can see the progress bar at the bottom of the table.

Fixes: https://tracker.ceph.com/issues/47435
Signed-off-by: Nizamudeen A <nia@redhat.com>
4 years agotest/rbd-mirror: pool watcher registration error might result in race 37209/head
Jason Dillaman [Wed, 5 Aug 2020 16:36:26 +0000 (12:36 -0400)]
test/rbd-mirror: pool watcher registration error might result in race

The init finish context should be swapped out before it attempts to
re-register the watcher. This affects the test case which mocks the
timer to fire immediately instead of after 30 seconds.

Fixes: https://tracker.ceph.com/issues/46669
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit c89d31ebf6c412d609123979c63ebc600b70e179)

Conflicts:
src/tools/rbd_mirror/PoolWatcher.cc
- nautilus uses Mutex::Locker where master has std::lock_guard

4 years agoMerge pull request #37204 from tchaikov/nautilus-doc-rtd
Kefu Chai [Thu, 17 Sep 2020 02:54:31 +0000 (10:54 +0800)]
Merge pull request #37204 from tchaikov/nautilus-doc-rtd

nautilus: doc: enable Read the Docs

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agodoc: add in-doc search from read the docs 37204/head
Kefu Chai [Thu, 9 Apr 2020 15:14:42 +0000 (23:14 +0800)]
doc: add in-doc search from read the docs

readthedocs-sphinx-search features better user experience than the
builtin search offered by sphinx

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 8bd8a8badbf992347a0883a537cce414432c867e)

4 years agodoc: use plantweb as fallback of sphinx-ditaa
Kefu Chai [Thu, 9 Apr 2020 13:25:39 +0000 (21:25 +0800)]
doc: use plantweb as fallback of sphinx-ditaa

RTD does not support installing system packages, the only ways to install
dependencies are setuptools and pip. while ditaa is a tool written in
Java. so we need to find a native python tool allowing us to render ditaa
images. plantweb is able to the web service for rendering the ditaa
diagram. so let's use it as a fallback if "ditaa" is not around.

also start a new line after the directive, otherwise planweb server will
return 500 at seeing the diagram.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 0cb56e0f13dc57167271ec7f20f11421416196a2)

Conflicts:
doc/cephfs/cephfs-io-path.rst
doc/dev/deduplication.rst
doc/install/ceph-deploy/quick-cephfs.rst
doc/radosgw/vault.rst
doc/rbd/rbd-kubernetes.rst
doc/rbd/rbd-persistent-cache.rst: these file does not exist in
          nautilus, so drop related changes

4 years agodoc/conf.py: exclude pybindings docs from build for RTD
Kefu Chai [Thu, 9 Apr 2020 08:51:06 +0000 (16:51 +0800)]
doc/conf.py: exclude pybindings docs from build for RTD

because it'd difficult to prepare (dummy) librados,libcephfs and librbd for
their python bindings in the building environment offered by Read the Docs.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 847e4ef941401e1b580e93d7058e8413bd131e21)

Conflicts:
doc/conf.py: trivial resolution

4 years agoreadthedocs: add .readthedocs.yml
Kefu Chai [Thu, 9 Apr 2020 07:35:15 +0000 (15:35 +0800)]
readthedocs: add .readthedocs.yml

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 99b75c14d2c84bad8a6b491e4981eeb481751c40)

4 years agoMerge pull request #37171 from neha-ojha/wip-47092-nautilus
Yuri Weinstein [Wed, 16 Sep 2020 21:06:12 +0000 (14:06 -0700)]
Merge pull request #37171 from neha-ojha/wip-47092-nautilus

nautilus: mon: mark pgtemp messages as no_reply more consistenly in preprocess_…

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
4 years agolibrbd: migration abort should revert data back to the original image 37165/head
Jason Dillaman [Wed, 5 Aug 2020 13:12:41 +0000 (09:12 -0400)]
librbd: migration abort should revert data back to the original image

If the migration destination image was modified and then the migration
was aborted, we need to copy the data back to the source image to avoid
losing data. For simplicity we will only revert the HEAD revision state
and will not attempt to copy new snapshots on the destination image
back to the source.

Fixes: https://tracker.ceph.com/issues/41394
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 5bd15da8be09a4e7644d411a0b0c132e5b795393)

Conflicts:
src/librbd/api/Migration.cc: trivial resolution
(cherry picked from commit f94c276accb8c9f4096b3bffc95362a921f2a2a5)

Conflicts:
        src/librbd/api/Migration.cc: snapshot-based mirroring changes

4 years agolibrbd: track in-progress migration aborting operation
Jason Dillaman [Tue, 4 Aug 2020 21:09:57 +0000 (17:09 -0400)]
librbd: track in-progress migration aborting operation

We want to prevent the destination image from being used while an
abort is in-progress. Test that the image has no watchers prior to
permitting the abort, switch the migration state to ABORTING, and
treat the image as read-only if the migration state is ABORTING.

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

Conflicts:
src/librbd/image/RefreshRequest.cc: lock and read-only flags refactor

4 years agolibrbd: improved debug logs on list watcher state machine
Jason Dillaman [Tue, 4 Aug 2020 21:19:21 +0000 (17:19 -0400)]
librbd: improved debug logs on list watcher state machine

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

Conflicts:
src/librbd/image/ListWatchersRequest.cc: dropped mirroring filter

4 years agolibrbd: deep-copy objects from specified start position
Jason Dillaman [Wed, 5 Feb 2020 20:54:55 +0000 (15:54 -0500)]
librbd: deep-copy objects from specified start position

Only read data from from after the specified start position and copy it
to the specified starting write position in the destination.

Fixes: https://tracker.ceph.com/issues/43933
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit d445ac503a9b8aa7a8f7d235023325cca44d58ce)

4 years agolibrbd: ensure deep-copy snapshot map includes all destination snap ids
Jason Dillaman [Wed, 5 Feb 2020 20:27:39 +0000 (15:27 -0500)]
librbd: ensure deep-copy snapshot map includes all destination snap ids

When deep-copying from an arbitrary start snapshot id, the snap sequence
will be missing all older snapshots. Additionally, snapshot types that
are not deep-copied still need to be included in the destination snap
map.

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

Conflicts:
src/librbd/deep_copy/ImageCopyRequest.cc: RefCountedObject changes

4 years agolibrbd: deep-copy snapshots from a specified start/end position
Jason Dillaman [Wed, 5 Feb 2020 19:23:53 +0000 (14:23 -0500)]
librbd: deep-copy snapshots from a specified start/end position

Allow the snapshots to be arbitrarily copied from any source image
start/end snapshot ids. If the end snapshot is not a user-snapshot,
it will associate to the destination image HEAD revision.

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

Conflicts:
src/librbd/deep_copy/SnapshotCopyRequest.cc: different lock types
src/test/librbd/deep_copy/test_mock_SnapshotCopyRequest.cc: no mirror snapshot namespaces

4 years agolibrbd: deep-copy should accept a lower-bound for the destination snap_id
Jason Dillaman [Wed, 5 Feb 2020 15:42:27 +0000 (10:42 -0500)]
librbd: deep-copy should accept a lower-bound for the destination snap_id

For snapshot-based mirroring, we will want to prevent the modification of
snapshots below the last sync snapshot and to prevent the copying of data
below that lower-bound as well. This commit just adds the new parameter and
future commits will update the snapshot and object copy behavior.

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

Conflicts:
src/librbd/DeepCopyRequest.cc: different lock types
src/tools/rbd_mirror/ImageSync.cc: trivial resolution

4 years agoMerge pull request #37091 from neha-ojha/wip-47194-nautilus
Yuri Weinstein [Wed, 16 Sep 2020 15:52:38 +0000 (08:52 -0700)]
Merge pull request #37091 from neha-ojha/wip-47194-nautilus

nautilus: os/bluestore: enable more flexible bluefs space management by default.

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
4 years agoMerge pull request #36982 from neha-ojha/wip-47296-nautilus
Yuri Weinstein [Wed, 16 Sep 2020 15:44:27 +0000 (08:44 -0700)]
Merge pull request #36982 from neha-ojha/wip-47296-nautilus

nautilus: mon/OSDMonitor: only take in osd into consideration when trimming osd…

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