]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
2 years agoceph.spec.in: use %enable_devtoolset11 to enable GTS-11
Kefu Chai [Mon, 27 Jun 2022 13:18:57 +0000 (21:18 +0800)]
ceph.spec.in: use %enable_devtoolset11 to enable GTS-11

%enable_devtoolset11 redefines %___build_pre by appending
`source scl_source enable gcc-toolset-11` to it. `___build_pre` should
be able to populate this setting to both %build and %install. and hence
address the FTBFS where we need to use the tool chain from GTS-11.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
(cherry picked from commit 49459d92fec553246b35719e9defc0ad7582f701)
(cherry picked from commit 89a6a2d80236db0cb2ef54325ebc483c5491da25)

2 years agoceph.spec.in: openSUSE: require gcc11-c++, disable parquet
Tim Serong [Fri, 8 Apr 2022 06:24:49 +0000 (16:24 +1000)]
ceph.spec.in: openSUSE: require gcc11-c++, disable parquet

This commit also explicilty sets the toolset when calling
boost's bootstrap.sh, because the latter is only capable
of autodetecting gcc if you have an unversioned `g++` in
the path, which may not be the case if only gcc11-c++ is
installed (the unversioned gcc-c++ package includes the
/usr/bin/g++ symlink, but depending on which version of
openSUSE we build on, that might point to a different gcc
version, so we don't want to use that).

Fixes: https://tracker.ceph.com/issues/55237
Signed-off-by: Tim Serong <tserong@suse.com>
(cherry picked from commit 8ab5d7eea077cb65e472631aa89c6bd607f1dfa0)

2 years agoceph.spec.in: enable WITH_SEASTAR if "with seastar"
Kefu Chai [Mon, 11 Jul 2022 00:19:51 +0000 (20:19 -0400)]
ceph.spec.in: enable WITH_SEASTAR if "with seastar"

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
(cherry picked from commit be0b9534db80c96412f3c65f7bd91464c727b82c)

2 years agoceph.spec.in: enable toolset 11 also in install
Radoslaw Zarzynski [Mon, 27 Jun 2022 19:38:03 +0000 (19:38 +0000)]
ceph.spec.in: enable toolset 11 also in install

This can be surprising but we actually compile things during
the `install` stage of `rpm-build`. The example is the pybind's
`setup.py` which builds `rados_dummy.c`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit f05b671798a54dce0e4aa340f76b31f401061a27)

2 years agoceph.spec.in: move and undef _annotated_build only for rhels.
Radoslaw Zarzynski [Tue, 28 Jun 2022 01:15:15 +0000 (01:15 +0000)]
ceph.spec.in: move and undef _annotated_build only for rhels.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit ddf3721a9649b9b29593f17e663a1f0bf20afc19)

2 years agoceph.spec.in: use gcc-toolset-11 for building crimson
Radosław Zarzyński [Tue, 31 May 2022 10:21:41 +0000 (12:21 +0200)]
ceph.spec.in: use gcc-toolset-11 for building crimson

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit 13f3653f59f61c1f7e90c05e37e43e0ef912d1ea)

2 years agoceph.spec.in: use gcc-toolset-10 for building crimson
Radosław Zarzyński [Mon, 28 Mar 2022 14:38:44 +0000 (16:38 +0200)]
ceph.spec.in: use gcc-toolset-10 for building crimson

This commit bumps up the toolset version but only to build crimson.
That is, the classical OSD stays unaffected.

The reason behind the upgrade is the following FTBFS:

```
[ 32%] Building CXX object src/seastar/CMakeFiles/seastar.dir/src/core/reactor.cc.o
/home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11345-ga3bb1485/rpm/el8/BUILD/ceph-17.0.0-11345-ga3bb1485/src/seastar/src/core/reactor.cc: In constructor ‘seastar::reactor::reactor(std::shared_ptr<seastar::smp>, seastar::alien::instance&, unsigned int, seastar::reactor_backend_selector, seastar::reactor_config)’:
/home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11345-ga3bb1485/rpm/el8/BUILD/ceph-17.0.0-11345-ga3bb1485/src/seastar/src/core/reactor.cc:926:90: error: use of deleted function ‘seastar::condition_variable::condition_variable()’
  926 |     , _thread_pool(std::make_unique<thread_pool>(this, seastar::format("syscall-{}", id))) {
      |                                                                                          ^
In file included from /home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11345-ga3bb1485/rpm/el8/BUILD/ceph-17.0.0-11345-ga3bb1485/src/seastar/include/seastar/core/reactor.hh:74,
                 from /home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11345-ga3bb1485/rpm/el8/BUILD/ceph-17.0.0-11345-ga3bb1485/src/seastar/src/core/reactor.cc:32:
/home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11345-ga3bb1485/rpm/el8/BUILD/ceph-17.0.0-11345-ga3bb1485/src/seastar/include/seastar/core/condition-variable.hh:157:5: note: ‘seastar::condition_variable::condition_variable() noexcept’ is implicitly deleted because its exception-specification does not match the implicit exception-specification ‘’
  157 |     condition_variable() noexcept = default;
```

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit 30f75143171d5ed1ca94a1a56ce0556db17735b6)

2 years agoMerge pull request #47368 from kotreshhr/wip-56979-quincy
Yuri Weinstein [Wed, 10 Aug 2022 15:18:01 +0000 (08:18 -0700)]
Merge pull request #47368 from kotreshhr/wip-56979-quincy

quincy: mgr/volumes: Fix subvolume creation in FIPS enabled system.

Reviewed-by: Ramana Raja <rraja@redhat.com>
2 years agoMerge pull request #47251 from idryomov/wip-56491-quincy
Yuri Weinstein [Tue, 9 Aug 2022 16:43:34 +0000 (09:43 -0700)]
Merge pull request #47251 from idryomov/wip-56491-quincy

quincy: ceph.spec.in: disable system_pmdk on s390x

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2 years agoMerge pull request #47210 from kamoltat/wip-ksirivad-backport-quincy-fix-56151
Yuri Weinstein [Tue, 9 Aug 2022 16:42:57 +0000 (09:42 -0700)]
Merge pull request #47210 from kamoltat/wip-ksirivad-backport-quincy-fix-56151

quincy: src/mgr/DaemonServer.cc: fix typo in output gap >= max_pg_num_change

Reviewed-by: Neha Ojha <nojha@redhat.com>
2 years agoMerge pull request #47086 from kamoltat/wip-ksirivad-quincy-backport-46029
Yuri Weinstein [Tue, 9 Aug 2022 16:41:15 +0000 (09:41 -0700)]
Merge pull request #47086 from kamoltat/wip-ksirivad-quincy-backport-46029

quincy: mon/Elector: notify_rank_removed erase rank from both live_pinging and dead_pinging sets for highest ranked MON

Reviewed-by: Neha Ojha <nojha@redhat.com>
2 years agoMerge pull request #47020 from sseshasa/wip-56498-quincy
Yuri Weinstein [Tue, 9 Aug 2022 16:40:12 +0000 (09:40 -0700)]
Merge pull request #47020 from sseshasa/wip-56498-quincy

quincy: osd: Set initial mClock QoS params at CONF_DEFAULT level

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2 years agoMerge pull request #46623 from idryomov/wip-pmdk-wno-error-quincy
Yuri Weinstein [Tue, 9 Aug 2022 16:38:01 +0000 (09:38 -0700)]
Merge pull request #46623 from idryomov/wip-pmdk-wno-error-quincy

quincy: cmake: pass -Wno-error when building PMDK

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
2 years agoMerge pull request #46155 from tserong/wip-55552-quincy
Kefu Chai [Tue, 9 Aug 2022 15:51:59 +0000 (23:51 +0800)]
Merge pull request #46155 from tserong/wip-55552-quincy

quincy: ceph.spec.in: openSUSE: require gcc11-c++, disable parquet

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2 years agoMerge pull request #47445 from kamoltat/wip-ksirivad-backport-quincy-47138
Neha Ojha [Tue, 9 Aug 2022 11:14:05 +0000 (04:14 -0700)]
Merge pull request #47445 from kamoltat/wip-ksirivad-backport-quincy-47138

quincy: qa/tasks/ceph_manager.py: increase test_pool_min_size timeout

Reviewed-by: Neha Ojha <nojha@redhat.com>
2 years agoMerge pull request #47490 from sseshasa/wip-57052-quincy
Neha Ojha [Tue, 9 Aug 2022 11:12:30 +0000 (04:12 -0700)]
Merge pull request #47490 from sseshasa/wip-57052-quincy

quincy: osd: Handle oncommits and wait for future work items from mClock queue

Reviewed-by: Neha Ojha <nojha@redhat.com>
2 years agoMerge pull request #47483 from tchaikov/quincy-pr-47478
Kefu Chai [Mon, 8 Aug 2022 13:22:40 +0000 (21:22 +0800)]
Merge pull request #47483 from tchaikov/quincy-pr-47478

quincy: cmake: remove spaces in macro used for compiling cython code

Reviewed-by: Tim Serong <tserong@suse.com>
2 years agoosd: Handle oncommits and wait for future work items from mClock queue 47490/head
Sridhar Seshasayee [Thu, 21 Jul 2022 16:01:55 +0000 (21:31 +0530)]
osd: Handle oncommits and wait for future work items from mClock queue

When a worker thread with the smallest thread index waits for future work
items from the mClock queue, oncommit callbacks are called. But after the
callback, the thread has to continue waiting instead of returning back to
the ShardedThreadPool::shardedthreadpool_worker() loop. Returning results
in the threads with the smallest index across all shards to busy loop
causing very high CPU utilization.

The fix involves reacquiring the shard_lock and waiting on sdata_cond
until notified or until time period lapses. After this, the smallest
thread index repopulates the oncommit queue from the context_queue
if there were any additions.

Fixes: https://tracker.ceph.com/issues/56530
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
(cherry picked from commit 180a5a7bffd4d96c472cc39447717958dd51bbd9)

2 years agocmake: remove spaces in macro used for compiling cython code 47483/head
Kefu Chai [Fri, 5 Aug 2022 08:40:41 +0000 (16:40 +0800)]
cmake: remove spaces in macro used for compiling cython code

we are facing following FTBFS on jammy + GCC-11.2 + Cython 0.29 +
CMake 3.22:

creating /home/jenkins-build/build/workspace/ceph-api/build/lib/cython_modules/temp.linux-x86_64-3.10/home/jenkins-build/build/workspace/ceph-api/build/src/pybind/cephfs
compile options: '-I/usr/include/python3.10 -I/usr/include/python3.10 -c'
extra options: '-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -iquote/home/jenkins-build/build/workspace/ceph-api/src/include -w -Dvoid0=dead_function(void) -D__Pyx_check_single_interpreter(ARG)=ARG ## 0 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2'
cc: /home/jenkins-build/build/workspace/ceph-api/build/src/pybind/cephfs/cephfs.c
cc: warning: ##: linker input file unused because linking not done
cc: error: ##: linker input file not found: No such file or directory
cc: warning: 0: linker input file unused because linking not done
cc: error: 0: linker input file not found: No such file or directory

it seems cython is not able to escape the space in the "extra options"
anymore, so the "##" and "0" are considered as object files passed to
compiler in addition to cephfs.c.

in this change the spaces are removed to help cython to make the right
decision.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
(cherry picked from commit 5824fed5b427f1d055fb7104fea2e68cd36e6844)

2 years agoMerge pull request #47342 from cbodley/wip-56955
Yuri Weinstein [Fri, 5 Aug 2022 15:01:15 +0000 (08:01 -0700)]
Merge pull request #47342 from cbodley/wip-56955

quincy: rgw: better tenant id from the uri on anonymous access

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 years agoMerge pull request #47289 from yaarith/wip-56486-quincy
Yuri Weinstein [Fri, 5 Aug 2022 14:54:20 +0000 (07:54 -0700)]
Merge pull request #47289 from yaarith/wip-56486-quincy

quincy: mgr/telemetry: reset health warning after re-opting-in

Reviewed-by: Laura Flores <lflores@redhat.com>
2 years agoMerge pull request #47201 from aaSharma14/wip-56647-quincy
Nizamudeen A [Thu, 4 Aug 2022 19:42:32 +0000 (01:12 +0530)]
Merge pull request #47201 from aaSharma14/wip-56647-quincy

quincy: mgr/dashboard:Get different storage class metrics in Prometheus dashboard

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2 years agoMerge pull request #47435 from guits/quincy-bp-pr47434
Guillaume Abrioux [Thu, 4 Aug 2022 09:13:46 +0000 (11:13 +0200)]
Merge pull request #47435 from guits/quincy-bp-pr47434

quincy: backport: ceph-volume/tests: fix test_exception_returns_default

2 years agoMerge pull request #47329 from rhcs-dashboard/wip-56947-quincy
Nizamudeen A [Thu, 4 Aug 2022 08:41:43 +0000 (14:11 +0530)]
Merge pull request #47329 from rhcs-dashboard/wip-56947-quincy

quincy: mgr/dashboard: added pattern validaton for form input

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
2 years agoMerge pull request #47430 from rhcs-dashboard/wip-57009-quincy
Pere Diaz Bou [Thu, 4 Aug 2022 06:46:35 +0000 (08:46 +0200)]
Merge pull request #47430 from rhcs-dashboard/wip-57009-quincy

quincy: mgr/dashboard: remove token logging

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2 years agoMerge pull request #47442 from ceph/quincy-rtd
David Galloway [Wed, 3 Aug 2022 23:07:47 +0000 (19:07 -0400)]
Merge pull request #47442 from ceph/quincy-rtd

quincy: .readthedocs.yml: Always build latest doc/releases pages

2 years agoMerge pull request #47268 from adk3798/quincy-osd-config
Adam King [Wed, 3 Aug 2022 19:58:40 +0000 (15:58 -0400)]
Merge pull request #47268 from adk3798/quincy-osd-config

quincy: mgr/cephadm: add parsing for config on osd specs

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoqa/tasks/ceph_manager.py: Increase timeout 47445/head
Kamoltat [Tue, 12 Jul 2022 19:36:26 +0000 (19:36 +0000)]
qa/tasks/ceph_manager.py: Increase timeout

In test_pool_min_size():

1. Provided buffer time before we check
for recovery in ceph_manager.wait_for_recovery()

2. Increased timeout in ceph_manager.wait_for_clean()

3. Increased sleep time for
ceph_manager.all_active_or_peered()

Fixes:
https://tracker.ceph.com/issues/49777
https://tracker.ceph.com/issues/54511
https://tracker.ceph.com/issues/51904

Signed-off-by: Kamoltat <ksirivad@redhat.com>
(cherry picked from commit ed73288102f4aa67da3485c70b2409b9eca1873b)

2 years agoqa/tasks/ceph_manager.py: improve loggings
Kamoltat [Fri, 1 Jul 2022 14:42:40 +0000 (14:42 +0000)]
qa/tasks/ceph_manager.py: improve loggings

1. When `test_pool_min_size` hit the case where
`not all PGs are active or peered` we dump
each PG state that doesn't have active or
peered state

2. Improve logs message in `inject_pause()`.

3. Add logs for the `test_map_discontinuity()`.

4. In the function, `choose_action()`,
added more logs regarding `chance_down`.

5. Added more loggings to
`primary_affinity()`,
`thrash_pg_upmap_items()`,
`thrash_pg_upmap()`.

6. Make self.is_clean() dump the pgs that
are not active+clean.

Signed-off-by: Kamoltat <ksirivad@redhat.com>
(cherry picked from commit 9ed53c82cf5d56bd4555084d3bf1c3c9948c4fe3)

2 years ago.readthedocs.yml: Always build latest doc/releases pages 47442/head
David Galloway [Thu, 30 Jun 2022 19:37:58 +0000 (15:37 -0400)]
.readthedocs.yml: Always build latest doc/releases pages

We don't backport PRs merged into doc/releases.  Therefore, when one browses to an older Ceph release version on docs.ceph.com (e.g., https://docs.ceph.com/en/pacific/), the information is out of date at best.

The doc/releases page is only accurate if browsing https://docs.ceph.com/en/latest/, for example.

So this post_checkout command will make sure we've checked out doc/releases from main before building and publishing.

Signed-off-by: David Galloway <dgallowa@redhat.com>
(cherry picked from commit 055fe1f825b0629b7685d6d3d4d629ffc37a2d7c)

2 years agomgr/cephadm: add parsing for config on osd specs 47268/head
Luis Domingues [Tue, 19 Jul 2022 09:04:34 +0000 (11:04 +0200)]
mgr/cephadm: add parsing for config on osd specs

Cephadm, while parsing spec files, can parse ceph configuration
for almost all the services, except for OSDs, where it fails
with a nasty "unexpected keyword argument config".

This commit fixes this issue.

Signed-off-by: Luis Domingues <domingues.luis@protonmail.ch>
(cherry picked from commit 74273e7e6e79c474e33fc41480399dc27ad2ae64)

2 years agoMerge pull request #47311 from adk3798/wip-56744-quincy
Adam King [Wed, 3 Aug 2022 12:10:09 +0000 (08:10 -0400)]
Merge pull request #47311 from adk3798/wip-56744-quincy

quincy: mgr/cephadm: Add disk rescan feature to the orchestrator

Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47312 from adk3798/wip-56742-quincy
Adam King [Wed, 3 Aug 2022 12:09:22 +0000 (08:09 -0400)]
Merge pull request #47312 from adk3798/wip-56742-quincy

quincy: mgr/cephadm: support for miscellaneous config files for daemons

Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47316 from adk3798/wip-56611-quincy
Adam King [Wed, 3 Aug 2022 12:08:35 +0000 (08:08 -0400)]
Merge pull request #47316 from adk3798/wip-56611-quincy

quincy: mgr/cephadm: support for os tuning profiles

Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47313 from adk3798/wip-56741-quincy
Adam King [Wed, 3 Aug 2022 12:05:43 +0000 (08:05 -0400)]
Merge pull request #47313 from adk3798/wip-56741-quincy

quincy: cephadm: reduce spam to cephadm.log

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47314 from adk3798/wip-56740-quincy
Adam King [Wed, 3 Aug 2022 12:05:22 +0000 (08:05 -0400)]
Merge pull request #47314 from adk3798/wip-56740-quincy

quincy: cephadm: add "su root root" to cephadm.log logrotate config

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47315 from adk3798/wip-56738-quincy
Adam King [Wed, 3 Aug 2022 12:05:02 +0000 (08:05 -0400)]
Merge pull request #47315 from adk3798/wip-56738-quincy

quincy: qa/workunits/cephadm: update test_repos master -> main

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47317 from adk3798/wip-56584-quincy
Adam King [Wed, 3 Aug 2022 12:04:34 +0000 (08:04 -0400)]
Merge pull request #47317 from adk3798/wip-56584-quincy

quincy: mgr/cephadm: check for events key before accessing it

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47373 from adk3798/wip-56986-quincy
Adam King [Wed, 3 Aug 2022 12:04:13 +0000 (08:04 -0400)]
Merge pull request #47373 from adk3798/wip-56986-quincy

quincy: mgr/cephadm: clear error message when resuming upgrade

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #47374 from adk3798/wip-56983-quincy
Adam King [Wed, 3 Aug 2022 12:03:58 +0000 (08:03 -0400)]
Merge pull request #47374 from adk3798/wip-56983-quincy

quincy: cephadm: Fix repo_gpgkey should return 2 vars

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 years agoMerge pull request #46467 from mdw-at-linuxbox/mdw-quincy-mankey
Casey Bodley [Wed, 3 Aug 2022 11:40:47 +0000 (07:40 -0400)]
Merge pull request #46467 from mdw-at-linuxbox/mdw-quincy-mankey

quincy -- sse s3 changes

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 years agoceph-volume/tests: fix test_exception_returns_default 47435/head
Guillaume Abrioux [Wed, 3 Aug 2022 09:16:36 +0000 (11:16 +0200)]
ceph-volume/tests: fix test_exception_returns_default

There are cases, like running tests as root user, where this test fails
because root user can always read the file content.

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

2 years agoqa: Fix use of the 'sudo' args 47368/head
Kotresh HR [Sat, 30 Jul 2022 00:02:27 +0000 (05:32 +0530)]
qa: Fix use of the 'sudo' args

https://tracker.ceph.com/issues/56727
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 5a33f7e6f6c1fbaa5078983ca2f0901296b65588)

2 years agomgr/volumes: Fix subvolume creation in FIPS enabled system.
Kotresh HR [Wed, 27 Jul 2022 11:09:08 +0000 (16:39 +0530)]
mgr/volumes: Fix subvolume creation in FIPS enabled system.

The md5 checksum is used in the construction of legacy
subvolume config filename. It's not used for security reason.
Hence marking the 'usedforsecurity' flag to false to
make it FIPs compliant.

The usage of md5 was always in there. The commit 373a04cf734
made it to get exercised in 'open_subvol' which is pre-requisite
for all the subvolume operations and hence subvolume
creation has failed.

Fixes: https://tracker.ceph.com/issues/56727
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit ced3fac48d3da2320827c6c86ece3b87953badc7)

2 years agoMerge pull request #47356 from rhcs-dashboard/wip-56965-quincy
Avan [Wed, 3 Aug 2022 08:35:50 +0000 (14:05 +0530)]
Merge pull request #47356 from rhcs-dashboard/wip-56965-quincy

quincy: mgr/dashboard: add required validation for frontend and monitor port

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
2 years agomgr/dashboard: remove token logging 47430/head
Pere Diaz Bou [Tue, 2 Aug 2022 16:56:49 +0000 (18:56 +0200)]
mgr/dashboard: remove token logging

Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
(cherry picked from commit fdaf909fba0c399b8d9bbc3a29a5af871546d9d9)

2 years agoMerge pull request #47403 from aaSharma14/wip-57003-quincy
Aashish Sharma [Wed, 3 Aug 2022 05:40:57 +0000 (11:10 +0530)]
Merge pull request #47403 from aaSharma14/wip-57003-quincy

quincy: mgr/dashboard: Show error on creating service with duplicate service id

Reviewed-by: Nizamudeen A <nia@redhat.com>
2 years agoMerge pull request #47195 from adamemerson/wip-54208-quincy
Yuri Weinstein [Tue, 2 Aug 2022 21:24:53 +0000 (14:24 -0700)]
Merge pull request #47195 from adamemerson/wip-54208-quincy

quincy: rgw: Fix data race in ChangeStatus

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 years agoMerge pull request #47191 from adamemerson/wip-56585-quincy
Yuri Weinstein [Tue, 2 Aug 2022 21:24:03 +0000 (14:24 -0700)]
Merge pull request #47191 from adamemerson/wip-56585-quincy

quincy: rgw: Guard against malformed bucket URLs

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 years agoMerge pull request #47415 from zdover23/wip-doc-2022-08-03-backport-47197-to-quincy
zdover23 [Tue, 2 Aug 2022 20:26:57 +0000 (06:26 +1000)]
Merge pull request #47415 from zdover23/wip-doc-2022-08-03-backport-47197-to-quincy

quincy: doc/dev: Elaborate on boost .deb creation

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2 years agodoc/dev: Elaborate on boost .deb creation 47415/head
David Galloway [Wed, 20 Jul 2022 21:07:44 +0000 (17:07 -0400)]
doc/dev: Elaborate on boost .deb creation

Signed-off-by: David Galloway <dgallowa@redhat.com>
(cherry picked from commit 3222485d6582ba6ab3ee908c13b6459c2e2b6302)

2 years agoMerge pull request #47149 from guits/wip-56496-quincy
Guillaume Abrioux [Tue, 2 Aug 2022 14:10:12 +0000 (16:10 +0200)]
Merge pull request #47149 from guits/wip-56496-quincy

quincy: ceph-volume: fix `simple scan`

2 years agoMerge pull request #47406 from guits/quincy-cv-backports
Guillaume Abrioux [Tue, 2 Aug 2022 13:52:15 +0000 (15:52 +0200)]
Merge pull request #47406 from guits/quincy-cv-backports

ceph-volume: Quincy backports

2 years agoceph-volume: fix is_ceph_disk_member() 47406/head
Guillaume Abrioux [Tue, 26 Jul 2022 14:24:31 +0000 (16:24 +0200)]
ceph-volume: fix is_ceph_disk_member()

`dev['NAME']` can't match `part` given that it's the name of the
parent device being compared to the partition name.

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

2 years agoceph-volume: filter out non-existing devices
Guillaume Abrioux [Mon, 25 Jul 2022 15:19:01 +0000 (17:19 +0200)]
ceph-volume: filter out non-existing devices

[1] has broken teuthology tests.

```
[root@smithi097 /]# ls -l /sys/block/
total 0
lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-0 -> ../devices/virtual/block/dm-0
lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-1 -> ../devices/virtual/block/dm-1
lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-2 -> ../devices/virtual/block/dm-2
lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-3 -> ../devices/virtual/block/dm-3
lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-4 -> ../devices/virtual/block/dm-4
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop0 -> ../devices/virtual/block/loop0
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop1 -> ../devices/virtual/block/loop1
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop2 -> ../devices/virtual/block/loop2
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop3 -> ../devices/virtual/block/loop3
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop4 -> ../devices/virtual/block/loop4
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop5 -> ../devices/virtual/block/loop5
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop6 -> ../devices/virtual/block/loop6
lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop7 -> ../devices/virtual/block/loop7
lrwxrwxrwx 1 root root 0 Jul 25 14:12 nvme0n1 -> ../devices/pci0000:00/0000:00:02.0/0000:02:00.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme1c1n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme1/nvme1c1n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme1n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys1/nvme1n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme2c2n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme2/nvme2c2n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme2n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys2/nvme2n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme3c3n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme3/nvme3c3n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme3n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys3/nvme3n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme4c4n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme4/nvme4c4n1
lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme4n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys4/nvme4n1
lrwxrwxrwx 1 root root 0 Jul 25 14:12 sda -> ../devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sda
[root@smithi097 /]#
```

devices like `nvme1c1n1` exist in `/sys/block` but aren't present in `/dev`

```
[root@smithi097 /]# ls -l /dev/nvme*
crw------- 1 root root  10, 122 Jul 25 14:16 /dev/nvme-fabrics
crw------- 1 root root 240,   0 Jul 25 14:12 /dev/nvme0
brw-rw---- 1 root disk 259,   0 Jul 25 14:15 /dev/nvme0n1
crw------- 1 root root 240,   1 Jul 25 14:16 /dev/nvme1
brw-rw---- 1 root disk 259,   2 Jul 25 15:24 /dev/nvme1n1
crw------- 1 root root 240,   2 Jul 25 14:16 /dev/nvme2
brw-rw---- 1 root disk 259,   4 Jul 25 15:24 /dev/nvme2n1
crw------- 1 root root 240,   3 Jul 25 14:16 /dev/nvme3
brw-rw---- 1 root disk 259,   6 Jul 25 15:24 /dev/nvme3n1
crw------- 1 root root 240,   4 Jul 25 14:16 /dev/nvme4
brw-rw---- 1 root disk 259,   8 Jul 25 15:24 /dev/nvme4n1
[root@smithi097 /]#
```

If a device isn't actually present in `/dev`, `get_block_devs_sysfs()` shouldn't return it.

[1] https://github.com/ceph/ceph/commit/c7f017b21ade3762ba5b7b9688bed72c6b6

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

2 years agoceph-volume: drop `ceph-bluestore-tool` call in Device._parse()
Guillaume Abrioux [Mon, 18 Jul 2022 14:54:17 +0000 (14:54 +0000)]
ceph-volume: drop `ceph-bluestore-tool` call in Device._parse()

disk.has_bluestore_label() does the same thing without a subprocess call.

Fixes: https://tracker.ceph.com/issues/56622
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit f5f3117510c287d817534c9f7c25af5f208c2f56)

2 years agoceph-volume: fix simple scan
Guillaume Abrioux [Fri, 29 Jul 2022 13:58:05 +0000 (15:58 +0200)]
ceph-volume: fix simple scan

When the class `Device` is instantiated with a path instead of a
block device, it fails like following.

```
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/site-packages/ceph_volume/util/device.py", line 130, in __init__
    self._parse()
  File "/usr/lib/python3.6/site-packages/ceph_volume/util/device.py", line 233, in _parse
    self.ceph_device = disk.has_bluestore_label(self.path)
  File "/usr/lib/python3.6/site-packages/ceph_volume/util/disk.py", line 906, in has_bluestore_label
    with open(device_path, "rb") as fd:
IsADirectoryError: [Errno 21] Is a directory: '/var/lib/ceph/osd/ceph-0/'
```

passing a path instead of a block device is valid, `simple scan` needs it.

Fixes: https://tracker.ceph.com/issues/56969
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 5a10e3e9e865aafd9d3f90beb186777060d17f08)

2 years agoceph-volume/tests: migrate to pyfakefs
Guillaume Abrioux [Wed, 27 Jul 2022 11:41:41 +0000 (13:41 +0200)]
ceph-volume/tests: migrate to pyfakefs

ceph-volume unit tests shouldn't actually create contents on the
filesystem from where it runs (even though they are written in a tmp
dir), let's use pyfakefs.

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

2 years agoceph-volume/tests: fix test_path_is_valid()
Guillaume Abrioux [Wed, 27 Jul 2022 12:28:10 +0000 (14:28 +0200)]
ceph-volume/tests: fix test_path_is_valid()

When ceph-volume tests are run from a host where there's no `/dev/sda`
device, this test fails.

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

2 years agoceph-volume: report slave devices in inventory
Guillaume Abrioux [Tue, 19 Jul 2022 12:06:10 +0000 (12:06 +0000)]
ceph-volume: report slave devices in inventory

`ceph-volume inventory` currently reports the following:

```

Device Path               Size        rotates available Model name
/dev/mapper/mpatha        50.00 GB    True    True
/dev/mapper/mpathaa       6.00 GB     True    True
/dev/mapper/mpathab       6.00 GB     True    True
/dev/mapper/mpathac       6.00 GB     True    True
/dev/mapper/mpathad       6.00 GB     True    True
/dev/mapper/mpathae       6.00 GB     True    True
```

whereas something like following would be useful:

```

Device Path               Size         Device nodes    rotates available Model name
/dev/mapper/mpatha        50.00 GB     sdf,sde         True    True
/dev/mapper/mpathaa       6.00 GB      sdbe,sdat       True    True
/dev/mapper/mpathab       6.00 GB      sdav,sdbf       True    True
/dev/mapper/mpathac       6.00 GB      sdbb,sdbl       True    True
/dev/mapper/mpathad       6.00 GB      sdas,sdbc       True    True
/dev/mapper/mpathae       6.00 GB      sdax,sdbh       True    True
```

Fixes: https://tracker.ceph.com/issues/56624
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 1ac2a8270cf4aece58ae3f952cc4d1ef978384ed)

2 years agoceph-volume: support symlinks as devices
Jan Sobczak [Fri, 20 Nov 2020 13:33:13 +0000 (14:33 +0100)]
ceph-volume: support symlinks as devices

This makes ceph-volume support passing symlinks as devices.

Fixes: https://tracker.ceph.com/issues/49103
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 9ddc5b77372cd2e0d5badd433c93d147cb25c6ee)

2 years agoceph-volume: drop self.abspath in Device()
Guillaume Abrioux [Fri, 8 Jul 2022 11:47:00 +0000 (13:47 +0200)]
ceph-volume: drop self.abspath in Device()

seems useless to have both self.path and self.abspath attributes.

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

2 years agoceph-volume: improve mpath devices reporting
Guillaume Abrioux [Tue, 19 Jul 2022 11:13:31 +0000 (11:13 +0000)]
ceph-volume: improve mpath devices reporting

An environment with mpath devices looks like following:

`lsblk` output:

```
sdy        65:128  0    6G  0 disk
`-mpathm  252:8    0    6G  0 mpath
sdz        65:144  0    6G  0 disk
`-mpathm  252:8    0    6G  0 mpath
```

`multipath -ll` output:

```
mpathm (3600140575bbe2d3c0c6493fb6e6ed84c) dm-8 LIO-ORG,TCMU device
size=6.0G features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 2:0:0:30 sdz  65:144 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 3:0:0:30 sdy  65:128 active ready running
```

`ceph-volume inventory` output:
```
Device Path               Size         rotates available Model name
/dev/mapper/mpathm        6.00 GB      True    True
/dev/sdy                  6.00 GB      True    False     TCMU device
/dev/sdz                  6.00 GB      True    False     TCMU device
```

ceph-volume shouldn't report devices `/dev/sdy` and `/dev/sdz`, they will never be
available in such a scenario. Considering this, in a host with a bunch of mpath devices
it will pollute the inventory output.

Fixes: https://tracker.ceph.com/issues/56621
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit e892f02a1a9126cbb520c90aeef0afb3590ddbbb)

2 years agoceph-volume: Remove refs to get_block_devs_lsblk
Zack Cerza [Tue, 21 Jun 2022 17:37:49 +0000 (11:37 -0600)]
ceph-volume: Remove refs to get_block_devs_lsblk

It's been replaced by get_block_devs_sysfs

Signed-off-by: Zack Cerza <zack@redhat.com>
(cherry picked from commit 2023e71f695c1962534c6012d5b331bebd10ec31)

2 years agoceph-volume: filter RBD devices from the device inventory
Michael Fritch [Tue, 18 Jan 2022 22:15:45 +0000 (15:15 -0700)]
ceph-volume: filter RBD devices from the device inventory

Avoid running `blkid` or deploying OSDs on RBD devices by ensuring they
do not appear in the `ceph-volume inventory`

Fixes: https://tracker.ceph.com/issues/53846
Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 47325ec3ec5ce1d53c5eae2952f631e95b7135fe)

2 years agoceph-volume: Rename env var; add warning
Zack Cerza [Tue, 21 Jun 2022 17:28:30 +0000 (11:28 -0600)]
ceph-volume: Rename env var; add warning

So that we can have a nice big warning that fires once per invocation, I
think using a callable class with a class attribute seems like a decent
approach. A closure could work too.

Signed-off-by: Zack Cerza <zack@redhat.com>
(cherry picked from commit 69f58f51a2d7967d597a8d61c0ab20b52e8dc374)

2 years agoceph-volume: Optionally consume loop devices
Zack Cerza [Tue, 17 May 2022 17:29:02 +0000 (11:29 -0600)]
ceph-volume: Optionally consume loop devices

A similar proposal was rejected in #24765; I understand the logic
behind the rejection, but this will allow us to run Ceph clusters on
machines that lack disk resources for testing purposes. We just need to
make it impossible to accidentally enable, and make it clear it is
unsupported.

Signed-off-by: Zack Cerza <zack@redhat.com>
(cherry picked from commit c7f017b21ade3762ba5b7b9688bed72c6b60dc0e)

2 years agoMerge pull request #47293 from MrFreezeex/wip-56630-quincy
Guillaume Abrioux [Tue, 2 Aug 2022 09:17:48 +0000 (11:17 +0200)]
Merge pull request #47293 from MrFreezeex/wip-56630-quincy

quincy: ceph-volume: fix fast device alloc size on mulitple device

2 years agoMerge pull request #47348 from guits/wip-56711-quincy
Guillaume Abrioux [Tue, 2 Aug 2022 08:23:58 +0000 (10:23 +0200)]
Merge pull request #47348 from guits/wip-56711-quincy

quincy: ceph-volume: do not call get_device_vgs() per devices

2 years agomgr/dashboard: Show error on creating service with duplicate service id 47403/head
Aashish Sharma [Mon, 25 Jul 2022 08:18:39 +0000 (13:48 +0530)]
mgr/dashboard: Show error on creating service with duplicate service id

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

2 years agoMerge pull request #47248 from idryomov/wip-56676-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:58:48 +0000 (14:58 -0700)]
Merge pull request #47248 from idryomov/wip-56676-quincy

quincy: librbd: tweak misleading "image is still primary" error message

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2 years agoMerge pull request #47162 from idryomov/wip-56549-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:57:50 +0000 (14:57 -0700)]
Merge pull request #47162 from idryomov/wip-56549-quincy

quincy: librbd: bail from schedule_request_lock() if already lock owner

Reviewed-by: Christopher Hoffman <choffman@redhat.com>
2 years agoMerge pull request #47159 from idryomov/wip-48038-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:57:09 +0000 (14:57 -0700)]
Merge pull request #47159 from idryomov/wip-48038-quincy

quincy: qa/suites/rbd: disable workunit timeout for dynamic_features_no_cache

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
2 years agoMerge pull request #47144 from idryomov/wip-56561-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:56:09 +0000 (14:56 -0700)]
Merge pull request #47144 from idryomov/wip-56561-quincy

quincy: rbd: don't default empty pool name unless namespace is specified

Reviewed-by: Christopher Hoffman <choffman@redhat.com>
2 years agoMerge pull request #47129 from idryomov/wip-50734-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:55:32 +0000 (14:55 -0700)]
Merge pull request #47129 from idryomov/wip-50734-quincy

quincy: qa/suites/rbd/pwl-cache: ensure recovery is actually tested

Reviewed-by: Christopher Hoffman <choffman@redhat.com>
2 years agoMerge pull request #47126 from idryomov/wip-56516-quincy
Yuri Weinstein [Mon, 1 Aug 2022 21:54:23 +0000 (14:54 -0700)]
Merge pull request #47126 from idryomov/wip-56516-quincy

quincy: rbd-mirror: remove bogus completed_non_primary_snapshots_exist check

Reviewed-by: Mykola Golub <mgolub@suse.com>
2 years agoMerge pull request #47297 from aclamk/wip-56668-quincy
Yuri Weinstein [Mon, 1 Aug 2022 17:23:01 +0000 (10:23 -0700)]
Merge pull request #47297 from aclamk/wip-56668-quincy

quincy: os/bluestore: Fix collision between BlueFS and BlueStore deferred writes

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2 years agomgr/dashboard: add required validation for frontend and monitor port 47356/head
Avan Thakkar [Mon, 25 Jul 2022 10:34:00 +0000 (16:04 +0530)]
mgr/dashboard: add required validation for frontend and monitor port

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

2 years agoMerge pull request #47344 from ceph/quincy-release
Ilya Dryomov [Mon, 1 Aug 2022 16:56:34 +0000 (18:56 +0200)]
Merge pull request #47344 from ceph/quincy-release

v17.2.3

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 years agoMerge pull request #47391 from adk3798/quincy-fix-flake8
Ilya Dryomov [Mon, 1 Aug 2022 16:34:03 +0000 (18:34 +0200)]
Merge pull request #47391 from adk3798/quincy-fix-flake8

quincy: pybind/mgr: fix flake8

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 years agorbd-mirror: remove bogus completed_non_primary_snapshots_exist check 47126/head
Ilya Dryomov [Sat, 9 Jul 2022 11:35:04 +0000 (13:35 +0200)]
rbd-mirror: remove bogus completed_non_primary_snapshots_exist check

This check was added in commit ecd3778a6f9a ("rbd-mirror: ensure that
the last non-primary snapshot cannot be pruned") as an additional
safeguard against pruning an incomplete non-primary snapshot in case
there is no predecessor mirror snapshot.  However it still fires if the
predecessor is there but happens to be a primary demotion snapshot.
A bogus "incomplete local non-primary snapshot" error is reported and
the replayer gets stuck.

Remove completed_non_primary_snapshots_exist tracking as the presence
of the predecessor in the incomplete non-primary snapshot pruning arm
is already ensured by "m_local_snap_id_start > 0" condition.

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

2 years agotest/rbd-mirror: add last_copied_object_number == 0 coverage
Ilya Dryomov [Fri, 8 Jul 2022 17:15:48 +0000 (19:15 +0200)]
test/rbd-mirror: add last_copied_object_number == 0 coverage

Incomplete non-primary snapshot handling is bifurcated depending
on whether any data objects have been copied.  If no data objects
have been copied, an incomplete non-primary snapshot is assumed to
be malformed and gets pruned; the sync is restarted from scratch.

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

2 years agoqa/tasks: rename persistent write log cache trash task 47129/head
Ilya Dryomov [Sat, 16 Jul 2022 06:54:38 +0000 (08:54 +0200)]
qa/tasks: rename persistent write log cache trash task

It doesn't really thrash anything, just repeatedly restarts the
workload on top of a dirty cache file.  rbd_pwl_cache_recovery is
more on point and gets covered by existing CODEOWNERS.

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

2 years agoqa/tasks: add thrash test for persistent write log cache
Yin Congmin [Fri, 7 Jan 2022 07:03:44 +0000 (15:03 +0800)]
qa/tasks: add thrash test for persistent write log cache

add thrash test for persistent write log cache. run rbd bench
on persistent write log cache, thrashes rbd bench, test the
recovery function of persistent write log cache.

Signed-off-by: Yin Congmin <congmin.yin@intel.com>
(cherry picked from commit 0eab8de3c017d8318bd6c846991bb3f7c51fa97d)

2 years agorbd: drop unused default_empty_pool_name argument 47144/head
Ilya Dryomov [Thu, 14 Jul 2022 12:42:45 +0000 (14:42 +0200)]
rbd: drop unused default_empty_pool_name argument

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

2 years agorbd: don't default empty pool name unless namespace is specified
Ilya Dryomov [Thu, 14 Jul 2022 12:19:06 +0000 (14:19 +0200)]
rbd: don't default empty pool name unless namespace is specified

Commit 96f05a7956b3 ("rbd: delay determination of default pool name")
broke "rbd perf image iostat" and "rbd perf image iotop" GLOBAL_POOL_KEY
support (the ability to blend all rbd pools together into a single
view).

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

2 years agoqa/suites/rbd: disable workunit timeout for dynamic_features_no_cache 47159/head
Ilya Dryomov [Fri, 20 May 2022 12:05:03 +0000 (14:05 +0200)]
qa/suites/rbd: disable workunit timeout for dynamic_features_no_cache

The I/O workload in this test is xfstests (qa/run_xfstests_qemu.sh)
which isn't subjected to any timeout other than global max_job_time
limit in any other subsuite (e.g. qemu/workloads/qemu_xfstests.yaml).
But here, there is a parallel "op" workload defined as a workunit.
The workunit task has a default timeout of 3 hours which is effectively
imposed on the entire job.  In the "rbd cache = false" configuration,
it's sometimes exceeded.

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

2 years agolibrbd: bail from schedule_request_lock() if already lock owner 47162/head
Christopher Hoffman [Thu, 14 Jul 2022 18:20:29 +0000 (12:20 -0600)]
librbd: bail from schedule_request_lock() if already lock owner

Race condition may be hit if there are multiple pending locks for the
same image and pending callbacks. Abort exclusive lock process if
already exclusive lock owner.

Fixes: https://tracker.ceph.com/issues/56549
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
(cherry picked from commit 3527d2c764626c09c5ede80ae844551fd8845756)

2 years agolibrbd: tweak misleading "image is still primary" error message 47248/head
Ilya Dryomov [Fri, 22 Jul 2022 13:23:57 +0000 (15:23 +0200)]
librbd: tweak misleading "image is still primary" error message

m_promotion_state == PROMOTION_STATE_NON_PRIMARY doesn't say anything
about the remote image.  It could still be primary but it could also be
demoted.

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

2 years agomgr/cephadm: fix flake8 47391/head
Avan Thakkar [Mon, 1 Aug 2022 09:23:14 +0000 (14:53 +0530)]
mgr/cephadm: fix flake8

Signed-off-by: Avan Thakkar <athakkar@redhat.com>
(cherry picked from commit a124f6c47b119a8741f347ea5a809f3fb48d6679)

2 years agocephadm: ceph.manual.gpg cleanup 47374/head
Laurent Barbe [Fri, 29 Jul 2022 07:33:36 +0000 (09:33 +0200)]
cephadm: ceph.manual.gpg cleanup

Cleanup file /etc/apt/trusted.gpg.d/ceph.manual.gpg when repo is removed

Signed-off-by: Laurent Barbe <laurent@ksperis.com>
(cherry picked from commit bf0951353a80dc17edcc85a7914cfaf2b956d544)

2 years agocephadm: Fix repo_gpgkey should return 2 vars
Laurent Barbe [Thu, 28 Jul 2022 07:30:59 +0000 (09:30 +0200)]
cephadm: Fix repo_gpgkey should return 2 vars

when option --gpg-url is specified, the name used for the gpg filename is missing and throws an exception
this adds the string "manual" to the gpg key : /etc/apt/trusted.gpg.d/ceph.manual.gpg

Fixes: https://tracker.ceph.com/issues/56950
Signed-off-by: Laurent Barbe <laurent@ksperis.com>
(cherry picked from commit 79c805546c9bf4747a9019f4ad59f55e03c9fcef)

2 years agomgr/cephadm: clear error message when resuming upgrade 47373/head
Adam King [Tue, 26 Jul 2022 13:55:05 +0000 (09:55 -0400)]
mgr/cephadm: clear error message when resuming upgrade

the message field in the output of "ceph orch upgrade status"
will first take the value of the error field of the UpgradeState,
and if only if it blank/None, display an info string we periodically
update throughout the upgrade with useful info such as that
we're upgrading a daemon of a particular type or pulling an image
on a certain host. When an upgrade fails, we set the error field
of the UpgradeState, pause the upgrade and raise a health warning.
Sometimes, the user is able to resolve the issue and simply resume
the upgrade. The issue here is, in that case, the error field of
the UpgradeState is still set, so instead of seeing the useful info
messages, it will continue to display an error message that may
no longer be relevant. By emptying the error field of the UpgradeState
when upgrades are resumed, we return to normal behavior of
displaying the info string, and will only show another error message
if another error actually occurs.

Fixes: https://tracker.ceph.com/issues/56714
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 429561ccb7b524f071214ff3aad99ba8830a924c)

2 years agocephadm: give disk rescan its own parser object 47311/head
Adam King [Thu, 28 Jul 2022 00:27:54 +0000 (20:27 -0400)]
cephadm: give disk rescan its own parser object

It was using the same name as the agent. Missed this
in https://github.com/ceph/ceph/pull/46420/commits/6584c49bdf254e8750d23ed529478e6a9289e12f

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit f8eae87accf1f79646d761e50656838d1933662d)

2 years agocephadm: Add tests for rescan function
Paul Cuzner [Mon, 27 Jun 2022 06:41:27 +0000 (18:41 +1200)]
cephadm: Add tests for rescan function

Adds unittets for the rescan code

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 972fb0ab3c519141b2f07ac4f2d6bbb6b855441a)

Conflicts:
src/cephadm/tests/test_cephadm.py

2 years agodocs: Add docs for new host rescan feature
Paul Cuzner [Mon, 30 May 2022 01:55:27 +0000 (13:55 +1200)]
docs: Add docs for new host rescan feature

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 4525113fa123a5b1e8a23d6aefc306e6772326bc)

2 years agomgr/cephadm: Add new host rescan command
Paul Cuzner [Mon, 30 May 2022 01:54:33 +0000 (13:54 +1200)]
mgr/cephadm: Add new host rescan command

Adds a host rescan command to invoke cephadm's
rescan-disks subcommand

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit cc9eb1812e9aa138d7af7426b42657ace9020bea)

2 years agocephadm: Add rescan_disks subcommand
Paul Cuzner [Mon, 30 May 2022 01:52:57 +0000 (13:52 +1200)]
cephadm: Add rescan_disks subcommand

Add a new subcommand to probe each HBA to
force discovery of decies not automatically detected
by the kernel.

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 6584c49bdf254e8750d23ed529478e6a9289e12f)

2 years agoMerge pull request #44641 from rzarzynski/wip-bs-lazy4freebsd-quincy
Kefu Chai [Sat, 30 Jul 2022 02:00:47 +0000 (10:00 +0800)]
Merge pull request #44641 from rzarzynski/wip-bs-lazy4freebsd-quincy

quincy: bdev: fix FTBFS on FreeBSD, keep the huge paged read buffers.

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2 years agobdev: fix FTBFS on FreeBSD, keep the huge paged read buffers. 44641/head
Radoslaw Zarzynski [Mon, 17 Jan 2022 14:55:05 +0000 (14:55 +0000)]
bdev: fix FTBFS on FreeBSD, keep the huge paged read buffers.

Special thanks to Willem Jan Withagen!

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit d04ea43cfd0a834f470677d17a15d9c9d5c1c2e7)