Commit Graph

139838 Commits

Author SHA1 Message Date
Rishabh Dave
00f23e9a03
Merge pull request #52924 from rishabh-d-dave/test-nfs-pr-52556
qa: inherit RunCephCmd in CephTestCase instead of CephFSTestCase

Reviewed-by: Adam King <adking@redhat.com>
2023-09-05 20:21:30 +05:30
Adam Kupczyk
4c7a59b972
Merge pull request #52956 from aclamk/wip-aclamk-testing-variable-workload
tools: Add generator of variable workload
2023-09-05 15:48:13 +02:00
Guillaume Abrioux
91421c319d
Merge pull request #52877 from guits/bz2064498
ceph-volume/cephadm: support lv devices in inventory
2023-09-05 14:41:48 +02:00
Venky Shankar
27edb758ab
Merge pull request #53037 from batrick/i62482
qa: do not create rbd pool for CephFS QA

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
2023-09-04 19:48:05 +05:30
Ali Masarwa
9d52d8e398
Merge pull request #52964 from AliMasarweh/wip-alimasa-persistant-q-enhance
RGW: added a per topic configuration to control the notification persistency
Adding the configuration of persistency per topic that will override the global settings

Reviewed-by: yuvalif <ylifshit@redhat.com>
2023-09-04 15:25:44 +03:00
Ilya Dryomov
0a046b6de3
Merge pull request #53251 from idryomov/wip-61707
librbd: make CreatePrimaryRequest remove any unlinked mirror snapshots

Reviewed-by: Ramana Raja <rraja@redhat.com>
2023-09-04 13:25:03 +02:00
Ilya Dryomov
8d5f5505e0
Merge pull request #52990 from ajarr/fix-61607
librbd: kick ExclusiveLock state machine on client being blocklisted when waiting for lock

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2023-09-04 13:07:29 +02:00
Ali Masarwa
4abb31a5f4 RGW: added a per topic configuration to control the notification persistency
Signed-off-by: Ali Masarwa <ali.saed.masarwa@gmail.com>
2023-09-04 10:20:55 +03:00
zdover23
0a4bb7e9a5
Merge pull request #53264 from anthonyeleven/anthonyeleven/improve-radosgw-admin-usage
doc/man/8: improve radosgw-admin.rst

Reviewed-by: Zac Dover <zac.dover@proton.me>
2023-09-04 07:49:03 +10:00
Anthony D'Atri
d986537f9b doc/man/8: improve radosgw-admin.rst
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2023-09-03 09:56:44 -04:00
Anthony D'Atri
c837584207
Merge pull request #50360 from tgfree7/wip-doc-2023-03-03-multisite-migrating-a-single-site
doc/radosgw: multisite - edit "migrating a single-site"
2023-09-03 08:05:17 -04:00
Matan Breizman
a089373614
Merge pull request #53166 from Matan-B/wip-matanb-crimson-ignore-pool-app
qa/config/crimson_qa_overrides: ignore POOL_APP_NOT_ENABLED

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: chunmei-liu <chunmei.liu@intel.com>
2023-09-03 12:57:08 +03:00
zdover23
6dda3e2b43
Merge pull request #53247 from zdover23/wip-doc-2023-09-01-readme-md-running-test-cluster
doc/README.md - improve "Running a test cluster"

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2023-09-02 04:31:18 +10:00
zdover23
7cd15f35e9
Merge pull request #53249 from krafZLorG/fix_abc_table
doc/start: correct ABC test chart

Reviewed-by: Zac Dover <zac.dover@proton.me>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2023-09-02 04:08:17 +10:00
Ilya Dryomov
153df2d64b qa: add "failover / failback loop" test for rbd-mirror
For snapshot-based mirroring, check that demote (or other mirror
snapshots) don't pile up.  Nothing in particular to assert on for
journal-based mirroring but the test is still useful.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-09-01 19:05:36 +02:00
Ilya Dryomov
9c05d3d81f librbd: make CreatePrimaryRequest remove any unlinked mirror snapshots
After commit ac552c9b4d ("librbd: localize snap_remove op for mirror
snapshots"), rbd-mirror daemon no longer removes mirror snapshots when
it's done syncing them -- instead it only unlinks from them.  However,
CreatePrimaryRequest state machine was not adjusted to compensate and
hence two cases were missed:

- primary demotion snapshot (rbd-mirror daemon unlinks from primary
  demotion snapshots just like it does from regular primary snapshots);
  this comes up when an image is demoted but then promoted on the same
  cluster

- non-primary demotion snapshot (unlike regular non-primary snapshots,
  non-primary demotion snapshots store peer uuids and rbd-mirror daemon
  does unlinking just like in the case of primary snapshots); this
  comes up when an image is demoted and promoted on the other cluster

Related is the case of orphan snapshots.  Since they are dummy to begin
with, CreatePrimaryRequest would now clean up the orphan snapshot after
the creation of the force promote snapshot.

Fixes: https://tracker.ceph.com/issues/61707
Co-authored-by: Christopher Hoffman <choffman@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-09-01 19:05:36 +02:00
Ilya Dryomov
cfae3f79bd librbd: don't attempt to remove image state on orphan snapshots
Despite being mirror snapshots, orphan snapshots don't have image
state: see CreateNonPrimaryRequest::write_image_state() for a similar
is_orphan() check.  Attempting to remove image state generates bogus
"failed to read image state object" and "failed to remove image state"
errors.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-09-01 19:05:36 +02:00
Kefu Chai
d770751f97
Merge pull request #43217 from k0ste/fix_52656
mgr: prometheus: use nsec unit in desc for RBD _read_latency and _write_latency metrics

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2023-09-01 22:51:01 +08:00
Ilya Dryomov
ff570c6132
Merge pull request #51197 from petrutlucian94/mingw-llvm
windows: use mingw-llvm

Reviewed-by: Adam Emerson <aemerson@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2023-09-01 16:21:35 +02:00
Dmitry Kvashnin
fdbd567d91 doc/start: correct ABC test chart
Signed-off-by: Dmitry Kvashnin <dm.kvashnin@gmail.com>
2023-09-01 10:53:18 +00:00
Zac Dover
420ecc7add doc/README.md - improve "Running a test cluster"
Improve the English in the section "Running a test cluster in the
ceph/README.md file.

Signed-off-by: Zac Dover <zac.dover@proton.me>
2023-09-01 10:19:58 +10:00
Ilya Dryomov
9d7c182578
Merge pull request #53237 from idryomov/wip-16.2.14-notes-followup
doc: 16.2.14 release notes follow-up

Reviewed-by: Laura Flores <lflores@redhat.com>
2023-08-31 17:30:05 +02:00
Venky Shankar
e1adcaefc4 Merge PR #52522 into main
* refs/pull/52522/head:
	mds: drop locks and retry when lock set changes

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2023-08-31 17:25:03 +05:30
Adam Kupczyk
07219ed1c8 tools/variable_load: Improvements
Added pool parameters.
Added WORKLOAD definition documentation
Added examples.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
2023-08-31 10:09:04 +00:00
Adam Kupczyk
6b6dc3c93c tools/variable_load: Improve load generation
Improve generation of workloads.
Add options. Add useful help.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
2023-08-31 10:09:04 +00:00
Adam Kupczyk
643ba66dae tools/variable_load: Add generator of variable workload
The tool is dedicated to create highly variable workloads.
The intended audience is
1) scraper testing - tool to sniff on OSD ops
2) CoDel testing - bandwidth/latency optimization algorithm in BS
Initial commit.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
2023-08-31 10:08:42 +00:00
Venky Shankar
4e021a0225 Merge PR #52409 into main
* refs/pull/52409/head:
	mds: rework FSMap to avoid shared_ptrs

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2023-08-31 15:03:18 +05:30
Nizamudeen A
a02e755639
Merge pull request #53100 from rhcs-dashboard/fix-rbd-mirror-label
mgr/dashboard: fix image columns naming

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-08-31 14:47:14 +05:30
Ilya Dryomov
0795c27447 doc: 16.2.14 release notes follow-up
Address review comments that remained outstanding in
https://github.com/ceph/ceph/pull/53107:

- CephFS capitalization
- missing PR in the list of changes

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-08-31 10:55:47 +02:00
Nizamudeen A
9051031828
Merge pull request #53182 from rhcs-dashboard/fix-subvolume-rm-snapshots
mgr/dashboard: subvolume rm with snapshots

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-08-31 11:27:07 +05:30
Laura Flores
a8ad05f169
Merge pull request #53107 from ceph/wip-yuriw-release-16.2.14-main
doc: 16.2.14 Release Notes
2023-08-30 17:24:55 -05:00
Lucian Petrut
157ec51caa win32_deps_build.sh: avoid duplicate boost definitions
Boost stacktrace defines a few UUIDs that were recently added
to mingw as well [1], causing compilation errors [2]:

  In file included from libs/stacktrace/build/../src/windbg.cpp:9:
  ./boost/stacktrace/detail/frame_msvc.ipp:31:5: error: redefinition of
    '__mingw_uuidof_s<IDebugClient>'
    __CRT_UUID_DECL(IDebugClient,0x27fe5639,...

We'll apply a fix that hasn't merged upsteam yet [3].

[1] ce5a9f624d
[2] https://github.com/boostorg/stacktrace/issues/133
[3] https://github.com/boostorg/stacktrace/pull/140

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 14:21:21 +00:00
Lucian Petrut
ec4a2778f6 cmake: fix mingw-llvm shared linking
mingw-llvm can't handle the '--exclude-libs' linker flag, so
we'll have to skip it.

At the same time, cmake can't locate the boost shared libs as the
import libs are not generated when using mingw-llvm due to boost's
clang-linux.jam file. For now, we'll patch the cmake files, using
the dlls as import libs (which is allowed by mingw).

While at it, we'll avoid linking the static AND dynamic boost libs,
speeding the build.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
4b43afd509 common: skip boost shared_mutex with mingw-llvm
Because of winpthreads issues, we had to use Boost's shared_mutex
implementation.

When using mingw-llvm, we can safely use libc++'s shared mutex
implementation.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
c8d09aeb88 common: avoid <1ms waits on Windows
std::condition_variable::wait_for uses SleepConditionVariableSRW
on Windows, which has millisecond precision.

In order to avoid busy loops, we won't wait for less than one
millisecond on Windows.

Note that this situation is quite common since on Windows,
"wait_for" often returns ~1ms before the specified timeout.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
a17a82c6f4 common: use signedspan for monotonic ceph clocks
The monotonic clocks are commonly used for measuring time deltas,
which can be negative.

ceph::mono_clock and ceph::coarse_mono_clock currently use
unsigned duration types [1]. The difference operators are overloaded
in order to ensure that the result is signed [2][3].

However, we still have issues when unsigned timespans are compared.
For example, std::condition::wait_for can hang indefinitely due
to underflows [4][5]. It ends up using our unsigned type for a
negative timespan, which is then compared to
std::chrono::duration<Rep,Period>::zero.

In order to avoid such problems, we'll simply use a signed type
for monotonic clock durations.

With signed timespans, we can no longer assume that time_point::zero()
is equal to time_point::min(), so we're updating it accodingly.

[1] 4040f12347/src/common/ceph_time.h (L285)
[2] 4040f12347/src/common/ceph_time.h (L345-L380)
[3] 4040f12347/src/common/ceph_time.h (L466-L487)
[4] 91cff8a718/libcxx/include/__condition_variable/condition_variable.h (L178)
[5] 91cff8a718/libcxx/include/__condition_variable/condition_variable.h (L193)

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
09a8cb0a6a test: add timer loop tests
We've been experiencing timer hangs with mingw-llvm.
std::condition_variable::wait_for was returning a few microseconds
before the requested time and then hanging when called with a
small interval (e.g. microseconds).

This was affecting the OSD periodic tick, which would hang after
a while (20m up to 2h).

The issue can be reproduced with a timer loop and a small interval
(e.g. 40us), in which case the timer is likely to hang after about
10s.

We're adding some tests, while the actual mingw-llvm issue will
be mitigated in a separate commit.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
3ce1e4a5c6 win32_build.sh: mingw-llvm support
winpthreads is a library that emulates the pthreads API using
Windows primitives. It's also used by the mingw/gcc libstdc++
for std::thread.

The issue is that winpthreads isn't well maintained. There
have been numerous bugs that haven't been addressed in years.
Specifically, we've been hitting deadlocks because of the
winpthreads rw lock implementation.

This change will allow building Ceph for Windows using mingw/llvm,
which uses libc++ and doesn't rely on winpthreads.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
82ef35db70 test/dokan: avoid runtime dependent assertion
We're checking a permission denied exception message that's
runtime specific:

  /mnt/data/workspace/ceph_mingw_clang/src/test/dokan/dokan.cc:252: Failure
  Expected equality of these values:
    e.what()
      Which is: "filesystem error: in remove: Permission denied
      [\"Z:\\ro_success_b76223c4-c590-45e0-ab78-4d281ac512b5\"]"
    exception_msg.c_str()
      Which is: "filesystem error: cannot remove: No such device
      [Z:\\ro_success_b76223c4-c590-45e0-ab78-4d281ac512b5]"

In order to support libc++, we'll drop the exception message
assertion and rely on the exception type.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
0a5641d196 test: link timer test against libceph-common
This test currently failes to build for Windows using llvm
due to unresolved symbols.

We'll address the issue by explicitly specifying the ceph-common
dependency.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
129fa17caa common: avoid using pthread native handle if not available
Especially when targeting Windows, llvm may not necessarily
use pthreads for std::thread. In this case, we must not use the
"native" thread handle with the pthreads API.

We'll update the ceph_pthread_getname and ceph_pthread_setname
wrappers, adding a new one: ceph_pthread_kill.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
4a0dceec99 cmake: avoid -Bsymbolic on Windows
The "-Bsymbolic" and "-Bsymbolic-functions" flags only apply to ELF
binaries.

llvm errors out when targeting Windows, which is why we'll need
to skip those flags for Windows builds.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
1df7de2aa4 src/common/win32: add missing casts
clang errors out because of a few type mismatches that gcc
ignored through "-fpermissive".

We'll need to cast a few void pointers to the appropriate type.
There's also a function that doesn't have an explicit return type,
which was omitted by mistake.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Lucian Petrut
936252524e cmake: avoid duplicate symbols
Some symbols from the crc32, arch and fmt libs
are re-exported by libceph-common:

  FAILED: bin/unittest_time.exe
  ld.lld: error: fmt::v9::format_error::~format_error() was replaced

llvm throws errors because of the duplicate symbols.
One workaround is to use objects instead of static libs
for the libs. For libfmt we'll use the header-only version.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Nizamudeen A
bd86572d5a
Merge pull request #53211 from rhcs-dashboard/kill-rbd-mirror-leftovers
mgr/dashboard: cleanup rbd-mirror process in dashboard e2e 

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Zack Cerza <zack@redhat.com>
2023-08-30 17:05:25 +05:30
Nizamudeen A
a3630d2f40
Merge pull request #53208 from rhcs-dashboard/fs-volume-validator-fix
mgr/dashboard: fix cephfs create form validator

Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
2023-08-30 13:53:44 +05:30
Pedro Gonzalez Gomez
338bb5c8a4 mgr/dashboard: fix image columns naming
Fixes: https://tracker.ceph.com/issues/62551
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
2023-08-30 10:12:18 +02:00
Pedro Gonzalez Gomez
453fbcb1cf mgr/dashboard: subvolume rm with snapshots
Fixes: https://tracker.ceph.com/issues/62452
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
2023-08-30 08:30:13 +02:00
Nizamudeen A
a453afb549 mgr/dashboard: cleanup rbd-mirror process in dashboard e2e
Fixes: https://tracker.ceph.com/issues/61703
Signed-off-by: Nizamudeen A <nia@redhat.com>
2023-08-30 10:03:23 +05:30
Anthony D'Atri
20398601e7
Merge pull request #53213 from zdover23/wip-doc-2023-08-30-cephadm-install-adding-hosts-2
doc/cephadm: edit "Adding Hosts" in install.rst
2023-08-29 19:47:05 -04:00