]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
14 months agocmake/arrow: don't treat warnings as errors
Casey Bodley [Wed, 24 Jan 2024 14:44:25 +0000 (09:44 -0500)]
cmake/arrow: don't treat warnings as errors

with arrow's default BUILD_WARNING_LEVEL, -Werror is added to cflags and
debug builds fail on a warning about _FORTIFY_SOURCE

Fixes: https://tracker.ceph.com/issues/63130
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 5c1a57a1afed1e4a632fb6df6de34ff9689460db)
(cherry picked from commit 7ecee431f6f3499730c5425b9b2930df8d61c159)

14 months agoceph.spec.in: remove command-with-macro line
John Mulligan [Fri, 29 Mar 2024 18:04:33 +0000 (14:04 -0400)]
ceph.spec.in: remove command-with-macro line

A comment clearly left as a breadcrumb for a node-proxy manpage is
causing (intermittent) build failures. Remove the line and hope
the manpage is added if/when appropriate.

Fixes: 0dd73643649ddc2366e60de4fe6c078b6e112091
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 5f25005dfbff51531989d121f26ecae308409356)
(cherry picked from commit a75e4b669fff6de47c24a3fa701b5302d86c7725)

14 months agoreef: qa: do not use `fs authorize` for two fs
Patrick Donnelly [Thu, 9 May 2024 01:38:56 +0000 (21:38 -0400)]
reef: qa: do not use `fs authorize` for two fs

This support was only recently added in squid.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 62328dfdf7aa834e5086080a7312b45439c2ebdf)

14 months agoPendingReleaseNotes: add note on the client incompatibility health warning and featur...
Patrick Donnelly [Fri, 3 May 2024 00:45:43 +0000 (20:45 -0400)]
PendingReleaseNotes: add note on the client incompatibility health warning and feature bit

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit e70f005f1b2f4ba5466d254ec4a6432297d3fbf4)
(cherry picked from commit 6a6aca8ad879e5fb9a08b23c6641903e40751e0a)

14 months agodoc/cephfs: add client_mds_auth_caps client feature bit
Patrick Donnelly [Fri, 3 May 2024 00:46:17 +0000 (20:46 -0400)]
doc/cephfs: add client_mds_auth_caps client feature bit

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 536b47cbfc669b5a3f04d93964408a2258d05ad0)
(cherry picked from commit cee4b62da42f0026220e6b8a4c3d92ec2c582b65)

14 months agodoc/cephfs: add missing client feature bits
Patrick Donnelly [Fri, 3 May 2024 00:38:19 +0000 (20:38 -0400)]
doc/cephfs: add missing client feature bits

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 79ba8970d7cbc714e160d5957bd849eede93e5a3)
(cherry picked from commit e6f24a3e59fe44c2f52a77c2787c5da369c9e464)

14 months agodoc/cephfs: document MDS_CLIENTS_BROKEN_ROOTSQUASH health error
Patrick Donnelly [Thu, 2 May 2024 23:33:50 +0000 (19:33 -0400)]
doc/cephfs: document MDS_CLIENTS_BROKEN_ROOTSQUASH health error

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit b810bc9c54515b69aefffb36f1a47235b3c9125d)
(cherry picked from commit 2f6dff5e5e80d5376d04897bbae72b7055a3b05b)

14 months agoqa: add tests for MDS_CLIENTS_BROKEN_ROOTSQUASH
Patrick Donnelly [Fri, 3 May 2024 00:52:29 +0000 (20:52 -0400)]
qa: add tests for MDS_CLIENTS_BROKEN_ROOTSQUASH

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 9d0ab233d822668e88c873bc1314e984feaf1296)
(cherry picked from commit 86fb2fa006f47a9792279895ffd00cb2cfdecc6e)

14 months agomds: raise health warning if client lacks feature for root_squash
Patrick Donnelly [Fri, 3 May 2024 00:50:37 +0000 (20:50 -0400)]
mds: raise health warning if client lacks feature for root_squash

Rather than evict all clients lacking this feature bit, raise a health error
that pushes the administrator to address it. This avoids the surprise of having
all affected clients suddenly evicted in the cluster.

Fixes: https://tracker.ceph.com/issues/65733
Fixes: 954ed30
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 66ff5c9fc8d4664f18b2fa462e96e5548c35951f)

Conflicts:
src/messages/MMDSBeacon.h: missing health beacon type
(cherry picked from commit 480b2cb199e6c933930ece59a3eca9c4cdf29c50)

14 months agomon/MDSMonitor: add note about missing metadata inclusion
Patrick Donnelly [Fri, 3 May 2024 00:49:22 +0000 (20:49 -0400)]
mon/MDSMonitor: add note about missing metadata inclusion

There is a "client_count" metadata on the health warning that apparently was
intended to be used for aggregating warnings but never was. Add a TODO item for
that.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 6517b704e311fd24dbf5bfbdec2ddd23b17d4092)
(cherry picked from commit c5e59168761928980869c612af21dd033808d76c)

14 months agomds: check relevant caps for fs include root_squash
Patrick Donnelly [Wed, 1 May 2024 01:41:14 +0000 (21:41 -0400)]
mds: check relevant caps for fs include root_squash

When denying client reconnects because the MDS caps include root_squash and the
client features do not include CEPHFS_FEATURE_MDS_AUTH_CAPS_CHECK, ensure those
caps are only for the file system the MDS is joined to.

Fixes: https://tracker.ceph.com/issues/65733
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit f79ae86f2c23388f6ecc3177764735e071998e09)
(cherry picked from commit 9b0f49212b11520961e0663fa0f0fa3452133ee7)

14 months agomds: refactor out fs_name match in MDSAuthCaps
Patrick Donnelly [Thu, 2 May 2024 12:55:36 +0000 (08:55 -0400)]
mds: refactor out fs_name match in MDSAuthCaps

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 247b4fed28617c104473d1586b66a8735bff0411)
(cherry picked from commit 1399fafd220453b706af65e3a5b5dba16ea1a37a)

14 months agoqa: test for root_squash with multiple caps
Patrick Donnelly [Thu, 2 May 2024 01:08:57 +0000 (21:08 -0400)]
qa: test for root_squash with multiple caps

Where the client has root_squash for one cap but not for another. The fs
without root_squash should not necessarily reject the client.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit bccc8ceb471c441ec04d7eb2c353630f8c5ce843)

Conflicts:
qa/tasks/cephfs/test_admin.py: missing test
(cherry picked from commit 22342c7f6395764256be16828b65a864767a01fb)

14 months agoqa: pass kwargs to mount from remount
Patrick Donnelly [Thu, 2 May 2024 02:06:54 +0000 (22:06 -0400)]
qa: pass kwargs to mount from remount

So we can pass mntargs.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit afcbfc040b56779e58563f715f26a0fe25e9f916)
(cherry picked from commit 14e030f746ab66a5a3cf930da1618ba6fbd61180)

14 months agoqa: simplify update_attrs and only update relevant keys
Patrick Donnelly [Thu, 2 May 2024 02:04:57 +0000 (22:04 -0400)]
qa: simplify update_attrs and only update relevant keys

So we can just pass the caller's kwargs to update_attrs.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 597ff3cb15e7a7ce527b35eb01d9958b755bbf01)
(cherry picked from commit ed939ee6743025c4d88704de7351fad2b62cffb8)

14 months agoclient: allow overriding client features
Patrick Donnelly [Thu, 2 May 2024 00:51:59 +0000 (20:51 -0400)]
client: allow overriding client features

For testing purposes.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit d9239f9375c1ae92a4990950f40078766bd912e8)
(cherry picked from commit e552cfc893e5cd1f89dfa5fe6f0280286d356333)

14 months agodebian: add missing bcrypt to manager .requires
Thomas Lamprecht [Tue, 5 Sep 2023 11:28:07 +0000 (13:28 +0200)]
debian: add missing bcrypt to manager .requires

The `ceph-mgr` package lost its dependency on `python3-bcrypt` when
the dependencies got moved from d/control to a dh_python3 compatible
requires file. Add it again as the bcrypt module is still used there.

Otherwise one gets errors when, e.g., calling `ceph -s` after a fresh
installation:

> 13 mgr modules have failed dependencies
> Module 'balancer' has failed dependency: No module named 'bcrypt'
> Module 'crash' has failed dependency: No module named 'bcrypt'
> Module 'devicehealth' has failed dependency: No module named 'bcrypt'
> Module 'iostat' has failed dependency: No module named 'bcrypt'
> Module 'nfs' has failed dependency: No module named 'bcrypt'
> Module 'orchestrator' has failed dependency: No module named 'bcrypt'
> Module 'pg_autoscaler' has failed dependency: No module named 'bcrypt'
> Module 'progress' has failed dependency: No module named 'bcrypt'
> Module 'rbd_support' has failed dependency: No module named 'bcrypt'
> Module 'restful' has failed dependency: No module named 'bcrypt'
> Module 'status' has failed dependency: No module named 'bcrypt'
> Module 'telemetry' has failed dependency: No module named 'bcrypt'
> Module 'volumes' has failed dependency: No module named 'bcrypt'

Fixes: https://tracker.ceph.com/issues/63637
Fixes: ef19547e83e ("debian: add .requires for specifying python3 deps")
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit adc501c2ceed138dd0b94be5a17ea7489377da57)
(cherry picked from commit 387b840c1786e77afab5c88b90682d1df3d42811)

14 months agosystemd: add systemd unit file for ceph-exporter
Shinya Hayashi [Mon, 5 Feb 2024 04:16:26 +0000 (04:16 +0000)]
systemd: add systemd unit file for ceph-exporter

Signed-off-by: Shinya Hayashi <shinya-hayashi@cybozu.co.jp>
(cherry picked from commit 32cbe079c60031f67ee91e2f74f39244a027eba6)
(cherry picked from commit 5f7da9d127c6179b7db0b62e82cae46f137129bc)

14 months agodebian: add ceph-exporter package
Shinya Hayashi [Tue, 30 Jan 2024 10:32:50 +0000 (10:32 +0000)]
debian: add ceph-exporter package

It is hard for Debian/Ubuntu users to use ceph-exporter
because it is not included in any deb packages.

This commit adds a new deb package for ceph-exporter.

Fixes: https://tracker.ceph.com/issues/64095
Signed-off-by: Shinya Hayashi <shinya-hayashi@cybozu.co.jp>
(cherry picked from commit a53c0651fbd8991e258ce7d0e3a80865dabfea88)
(cherry picked from commit 0479bc612ac630b0cc5d57b7d1b7f8439152d437)

15 months agoceph-volume: update functional testing
Yuri Weinstein [Fri, 12 Apr 2024 19:27:37 +0000 (19:27 +0000)]
ceph-volume: update functional testing

various changes for fixing ceph-volume functional testing.
cleaning up deploy.yml (drop py2 references)

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 90bfaaa2f0ab7e28c0f78189ccb83635e944e758)
(cherry picked from commit bf448e3f637f8c8e42f095b1b5ff709e3633dc11)
(cherry picked from commit 63fe3921638f1fb7fc065907a9e1a64700f8a600)

15 months agoMerge pull request #56672 from batrick/wip-65294-reef
Yuri Weinstein [Mon, 8 Apr 2024 18:18:25 +0000 (11:18 -0700)]
Merge pull request #56672 from batrick/wip-65294-reef

reef: mds: skip sr moves when target is an unlinked dir

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #53635 from vshankar/wip-62287-reef
Yuri Weinstein [Mon, 8 Apr 2024 18:17:47 +0000 (11:17 -0700)]
Merge pull request #53635 from vshankar/wip-62287-reef

reef: test: explicitly link to ceph-common for some libcephfs tests

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #53357 from k0ste/wip-61993-reef
Yuri Weinstein [Mon, 8 Apr 2024 18:16:37 +0000 (11:16 -0700)]
Merge pull request #53357 from k0ste/wip-61993-reef

reef: mds/MDSRank: Add set_history_slow_op_size_and_threshold for op_tracker

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56736 from rhcs-dashboard/fix-65285-reef
Aashish Sharma [Mon, 8 Apr 2024 04:33:39 +0000 (10:03 +0530)]
Merge pull request #56736 from rhcs-dashboard/fix-65285-reef

mgr/dashboard: add Table Schema to grafonnet

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #56740 from zdover23/wip-doc-2024-05-07-backport-56738-to-reef
Anthony D'Atri [Sun, 7 Apr 2024 12:28:31 +0000 (08:28 -0400)]
Merge pull request #56740 from zdover23/wip-doc-2024-05-07-backport-56738-to-reef

reef: doc/dev: refine "Concepts" 4 of 3

15 months agodoc/dev: refine "Concepts" 4 of 3 56740/head
Zac Dover [Sat, 6 Apr 2024 04:43:16 +0000 (14:43 +1000)]
doc/dev: refine "Concepts" 4 of 3

s/PG's PG logs/PG's logs/

re https://github.com/ceph/ceph/pull/56727#discussion_r1553541922

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 221d734760b6f680e4d17cd2f0bfcd39f914c8d6)

15 months agoMerge pull request #56729 from zdover23/wip-doc-2024-04-05-backport-56727-to-reef
Zac Dover [Sat, 6 Apr 2024 04:39:26 +0000 (14:39 +1000)]
Merge pull request #56729 from zdover23/wip-doc-2024-04-05-backport-56727-to-reef

reef: doc/dev: refine "Concepts" 3 of 3

15 months agomgr/dashboard: add Table Schema to grafonnet 56736/head
Aashish Sharma [Sat, 6 Apr 2024 03:36:51 +0000 (09:06 +0530)]
mgr/dashboard: add Table Schema to grafonnet

Backport of #56509 in reef didn't include the Table Schema in the
utils.libsonnet because of which the json generation ias failing. This
PR tends to add the Table Schema

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
15 months agoMerge pull request #56707 from afreen23/wip-65209-reef
Nizamudeen A [Fri, 5 Apr 2024 17:27:17 +0000 (22:57 +0530)]
Merge pull request #56707 from afreen23/wip-65209-reef

reef: mgr/dashboard:Update encryption and tags in bucket form

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #56710 from afreen23/wip-65333-reef
Nizamudeen A [Fri, 5 Apr 2024 17:26:10 +0000 (22:56 +0530)]
Merge pull request #56710 from afreen23/wip-65333-reef

reef: mgr/dashboard:Use advanced fieldset for rbd image

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agodoc/dev: refine "Concepts" 3 of 3 56729/head
Zac Dover [Fri, 5 Apr 2024 06:43:47 +0000 (16:43 +1000)]
doc/dev: refine "Concepts" 3 of 3

Refine the third third of the entries in the section "Concepts" in
doc/dev/peering.rst.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 512e2dc9d52fdd14dfdd87ccd141e535d3098fb7)

15 months agoMerge pull request #56725 from zdover23/wip-doc-2024-04-05-backport-56646-to-reef
Anthony D'Atri [Fri, 5 Apr 2024 12:34:21 +0000 (08:34 -0400)]
Merge pull request #56725 from zdover23/wip-doc-2024-04-05-backport-56646-to-reef

reef: doc/dev: refine "Concepts" 2 of 3

15 months agoMerge pull request #56682 from aaSharma14/wip-65285-reef
Aashish Sharma [Fri, 5 Apr 2024 04:52:48 +0000 (10:22 +0530)]
Merge pull request #56682 from aaSharma14/wip-65285-reef

reef: mgr/dashboard: replace deprecated table panel in grafana with a newer table panel

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agodoc/dev: refine "Concepts" 2 of 3 56725/head
Zac Dover [Wed, 3 Apr 2024 05:02:29 +0000 (15:02 +1000)]
doc/dev: refine "Concepts" 2 of 3

Refine the second third of the entries in the section "Concepts" in
doc/dev/peering.rst.

Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 7bb35282da27f0c18ffbe36f2c0852a827c5bc2f)

15 months agomgr/dashboard:Use advanced fieldset for rbd image 56710/head
Afreen [Wed, 27 Mar 2024 09:35:58 +0000 (15:05 +0530)]
mgr/dashboard:Use advanced fieldset for rbd image

Fixes https://tracker.ceph.com/issues/65025

- using cd-advanced-fieldset component for advanced section
- this will align advanced sections of forms in dashboard
- changed heading of sections of rbd-configuration to h5 to better represent it
  as a sub section.
- added unit tests for rbd image config

Signed-off-by: Afreen <afreen23.git@gmail.com>
(cherry picked from commit 25552117b433dbe39bf245aeda99761def5749eb)

15 months agomgr/dashboard:Update encryption and tags in bucket form 56707/head
Afreen [Mon, 25 Mar 2024 08:39:08 +0000 (14:09 +0530)]
mgr/dashboard:Update encryption and tags in bucket form

Fixes https://tracker.ceph.com/issues/65110

- renamed Security to Encryption
- aligned security fieldset with rest of the form using `cd-help-text`
  and aligning it with object locking in UX
- aligned security fieldset top use `cd-help-text`
- changed help text of Tags

Signed-off-by: Afreen <afreen23.git@gmail.com>
(cherry picked from commit 96b21d7cf5bb698102dc0cfce6fef05204b82d2e)

15 months agoMerge pull request #56692 from afreen23/wip-65304-reef
Nizamudeen A [Thu, 4 Apr 2024 16:34:52 +0000 (22:04 +0530)]
Merge pull request #56692 from afreen23/wip-65304-reef

reef: mgr/dashboard: Add advanced fieldset component

Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
15 months agoMerge pull request #56323 from adk3798/wip-64844-reef
Yuri Weinstein [Thu, 4 Apr 2024 15:31:35 +0000 (08:31 -0700)]
Merge pull request #56323 from adk3798/wip-64844-reef

reef: ceph-volume: Use safe accessor to get TYPE info

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
15 months agoMerge pull request #56648 from zdover23/wip-doc-2024-04-03-backport-56228-to-reef
Zac Dover [Thu, 4 Apr 2024 12:55:35 +0000 (22:55 +1000)]
Merge pull request #56648 from zdover23/wip-doc-2024-04-03-backport-56228-to-reef

reef: doc: fixing doc/cephfs/fs-volumes

Reviewed-by: Cole Mitchell <cole.mitchell.ceph@gmail.com>
15 months agoMerge pull request #56684 from zdover23/wip-doc-2024-04-04-backport-56662-to-reef
Zac Dover [Thu, 4 Apr 2024 11:39:21 +0000 (21:39 +1000)]
Merge pull request #56684 from zdover23/wip-doc-2024-04-04-backport-56662-to-reef

reef: doc/mgr: credit John Jasen for Zabbix 2

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
15 months agoMerge pull request #54945 from rishabh-d-dave/wip-63405-reef
Rishabh Dave [Thu, 4 Apr 2024 10:24:48 +0000 (15:54 +0530)]
Merge pull request #54945 from rishabh-d-dave/wip-63405-reef

reef: MDSAuthCaps: print better error message for perm flag in MDS caps

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agomgr/dashboard: Add advanced fieldset component 56692/head
Afreen [Fri, 1 Mar 2024 07:26:25 +0000 (12:56 +0530)]
mgr/dashboard: Add advanced fieldset component

Fixes https://tracker.ceph.com/issues/65024

- adds a new shared component for displaying advanced fields in /shared
- utilizes that component in bucket form
- placement targets are under advanced fieldset
- minor help text changes in object locking help text
- updated e2e tests

Signed-off-by: Afreen <afreen23.git@gmail.com>
(cherry picked from commit d0979e9c5223231a0fd3ef6408323d2fd5cd2ac5)

Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/shared/components/components.module.ts

15 months agoMerge pull request #56171 from vshankar/wip-64218-reef
Venky Shankar [Thu, 4 Apr 2024 06:57:43 +0000 (12:27 +0530)]
Merge pull request #56171 from vshankar/wip-64218-reef

reef: qa: `fs volume rename` requires `fs fail` and `refuse_client_session` set

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
15 months agoMerge pull request #56169 from vshankar/wip-64047-reef
Venky Shankar [Thu, 4 Apr 2024 06:57:10 +0000 (12:27 +0530)]
Merge pull request #56169 from vshankar/wip-64047-reef

reef: qa: set mds config with `config set` for a particular test

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
15 months agoMerge pull request #56167 from vshankar/wip-64250-reef
Venky Shankar [Thu, 4 Apr 2024 06:56:40 +0000 (12:26 +0530)]
Merge pull request #56167 from vshankar/wip-64250-reef

reef: qa: correct usage of DEBUGFS_META_DIR in dedent

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
15 months agoMerge pull request #56016 from vshankar/wip-64759-reef
Venky Shankar [Thu, 4 Apr 2024 06:49:54 +0000 (12:19 +0530)]
Merge pull request #56016 from vshankar/wip-64759-reef

reef: mds: relax certain asserts in mdlog replay thread

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
15 months agoMerge pull request #56557 from afreen23/wip-65205-reef
Nizamudeen A [Thu, 4 Apr 2024 05:49:41 +0000 (11:19 +0530)]
Merge pull request #56557 from afreen23/wip-65205-reef

reef: mgr/dashboard: make ceph logo redirect to dashboard

Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #56621 from afreen23/wip-65211-reef
Nizamudeen A [Thu, 4 Apr 2024 05:47:51 +0000 (11:17 +0530)]
Merge pull request #56621 from afreen23/wip-65211-reef

reef: mgr/dashboard: Mark placement targets as non-required

Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #56049 from lxbsz/wip-64584
Venky Shankar [Thu, 4 Apr 2024 04:29:10 +0000 (09:59 +0530)]
Merge pull request #56049 from lxbsz/wip-64584

reef: mds: allow lock state to be LOCK_MIX_SYNC in replica for filelock

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agodoc/mgr: credit John Jasen for Zabbix 2 56684/head
Zac Dover [Wed, 3 Apr 2024 12:21:04 +0000 (22:21 +1000)]
doc/mgr: credit John Jasen for Zabbix 2

Credit John Jasen for the development of the procedures describing the
installation of Zabbix 2.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 28aa556448cf02dc943653e76a7ef89e10ae93e9)

15 months agomgr/dashboard: replace deprecated table panel in grafana with a newer 56682/head
Aashish Sharma [Wed, 27 Mar 2024 08:16:24 +0000 (13:46 +0530)]
mgr/dashboard: replace deprecated table panel in grafana with a newer
table panel

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

15 months agoMerge pull request #56347 from cbodley/wip-65003-reef
Yuri Weinstein [Wed, 3 Apr 2024 22:04:30 +0000 (15:04 -0700)]
Merge pull request #56347 from cbodley/wip-65003-reef

reef: rgw: Add missing empty checks to the split string in is_string_in_set().

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
15 months agoMerge pull request #56197 from ifed01/wip-ifed-fix-estimate-kv-reef
Yuri Weinstein [Wed, 3 Apr 2024 22:03:38 +0000 (15:03 -0700)]
Merge pull request #56197 from ifed01/wip-ifed-fix-estimate-kv-reef

reef: os/kv_test: Fix estimate functions

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
15 months agoMerge pull request #55867 from trociny/wip-64650-reef
Yuri Weinstein [Wed, 3 Apr 2024 22:02:44 +0000 (15:02 -0700)]
Merge pull request #55867 from trociny/wip-64650-reef

reef: mon/OSDMonitor: fix get_min_last_epoch_clean()

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Matan Breizman <Matan.Brz@gmail.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
15 months agoMerge pull request #55777 from ifed01/wip-ifed-fix-expand-with-ncb-reef
Yuri Weinstein [Wed, 3 Apr 2024 22:01:23 +0000 (15:01 -0700)]
Merge pull request #55777 from ifed01/wip-ifed-fix-expand-with-ncb-reef

reef: os/bluestore: fix free space update after bdev-expand in NCB mode

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
15 months agoMerge pull request #55548 from k0ste/wip-64397-reef
Yuri Weinstein [Wed, 3 Apr 2024 21:58:18 +0000 (14:58 -0700)]
Merge pull request #55548 from k0ste/wip-64397-reef

reef: mon: fix health store size growing infinitely

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Matan Breizman <Matan.Brz@gmail.com>
15 months agoMerge pull request #54258 from YiteGu/backport-bluestore-fragmentation-to-metrics
Yuri Weinstein [Wed, 3 Apr 2024 21:57:54 +0000 (14:57 -0700)]
Merge pull request #54258 from YiteGu/backport-bluestore-fragmentation-to-metrics

reef: os/bluestore: add bluestore fragmentation micros to prometheus

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
15 months agoqa/cephfs: don't use run_cluster_cmd() 54945/head
Rishabh Dave [Thu, 21 Mar 2024 12:59:52 +0000 (18:29 +0530)]
qa/cephfs: don't use run_cluster_cmd()

The method was deleted in favour of run_ceph_cmd() and
get_ceph_cmd_stdout() in commit
35a0d84972d691535533ffeb1635e5f94d808575.

This commit is not a backport but a new commit to fix the code present
on Reef branch but not present in release branches after Reef. At least
some of these issues were exposed during QA done for the backport.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
15 months agoAuthMonitor: no need to check permission in MDS caps
Rishabh Dave [Sat, 24 Jun 2023 04:17:12 +0000 (09:47 +0530)]
AuthMonitor: no need to check permission in MDS caps

For "fs authorize" command, AuthMonitor.cc checks if permissions is "r"
or begins with "rw". This check is redundant now.
AuthMonitor::valid_caps() runs MDSAuthCaps.parse() which now runs same
check for the MDS caps, regardless of the command.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 8e1e322054ea14eb5e59969439c0ea27885503ab)

15 months agoMDSAuthCaps: print a special error message for wrong permissions
Rishabh Dave [Fri, 9 Jun 2023 18:54:12 +0000 (00:24 +0530)]
MDSAuthCaps: print a special error message for wrong permissions

Permissions mentioned in MDS caps flags can either begin with "r" or
"rw", or can be "*" and "all". But it can't start with or be just "w" or
something else. This is confusing for some CephFS users since MON caps
can be just "w".

Command "ceph fs authorize" complains about this to the user. But other
commands (specifically, "ceph auth add", "ceph auth caps",
"ceph auth get-or-create" and "ceph auth get-or-create-key") don't. Make
these commands too print a helpful message, the way "ceph fs authorize"
command does.

Fixes: https://tracker.ceph.com/issues/61666
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit f163dd3ef1fd9f05f05fa50eda9993225770d524)

Conflicts:
src/mds/MDSAuthCaps.cc
"std::string" was replace "string" in main but that's not the case
in Reef.

15 months agoqa/ceph_test_case: add a method to negative test Ceph commands
Rishabh Dave [Sat, 24 Jun 2023 17:11:07 +0000 (22:41 +0530)]
qa/ceph_test_case: add a method to negative test Ceph commands

Also, add comments to explain the users the arguments are accepted by
run_ceph_cmd(), get_ceph_cmd_result(), get_ceph_cmd_stdout() and
negtest_ceph_cmd() methods of class RunCephCmd.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit f72b217e3542de1880f694917bacd18f092560c4)

15 months agoqa: inherit RunCephCmd in CephTestCase instead of CephFSTestCase
Rishabh Dave [Wed, 9 Aug 2023 12:40:32 +0000 (18:10 +0530)]
qa: inherit RunCephCmd in CephTestCase instead of CephFSTestCase

MgrTestCase also needs RunCephCmd. If RunCephCmd is inherited by
CephTestCase, instead of CephFSTestCase, MgrTestCase will automatically
inherit RunCephCmd because it inhertis CephTestCase.

Fixes: https://tracker.ceph.com/issues/62084
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 4b369cf18ed1391a426ab4ae86da834e9c074f81)

15 months agoqa/cephfs: use run_ceph_cmd() when cmd output is not needed
Rishabh Dave [Mon, 27 Mar 2023 06:21:16 +0000 (11:51 +0530)]
qa/cephfs: use run_ceph_cmd() when cmd output is not needed

In filesystem.py and wherever instance of class Filesystem are used, use
run_ceph_cmd() instead of get_ceph_cluster_stdout() when output of Ceph
command is not required.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 0a781ef0807ae9473fb1306ef07036226ca4f1a6)

15 months agoqa/cephfs: add helper methods to filesystem.py
Rishabh Dave [Mon, 27 Mar 2023 06:09:11 +0000 (11:39 +0530)]
qa/cephfs: add helper methods to filesystem.py

Add run_ceph_cmd(), get_ceph_cmd_stdout() and get_ceph_cmd_result() to
class Filesystem so that running Ceph command is easier. This affects
not only methods inside class Filesystem but also methods elsewhere that
uses instance of class Filesystem to run Ceph commands.

Instead of "self.fs.mon_manager.raw_cluster_cmd()" writing
"self.fs.run_ceph_cmd()" will suffice.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 1bf87e6eec91b05a15702068bcf6a96e228f8d42)

15 months agoqa/cephfs: when cmd output is not needed call run_ceph_cmd()
Rishabh Dave [Thu, 16 Mar 2023 16:28:22 +0000 (21:58 +0530)]
qa/cephfs: when cmd output is not needed call run_ceph_cmd()

instead of get_ceph_cmd_stdout().

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit c7c38ba558e089c51d71e0b0713b3e0a368b9699)

Conflicts:
qa/tasks/cephfs/test_mirroring.py
- Commit e4dd0e41a3a0 was not present on main but it is now
present on main as well as on Reef, which leads to conflict.
- The line located right before one of the patches in this
  commit was modified in latest Reef branch, thus creating
  conflict when PR branch was rebased on latest Reef.

15 months agoqa/cephfs: add and use get_ceph_cmd_stdout()
Rishabh Dave [Thu, 16 Mar 2023 10:02:39 +0000 (15:32 +0530)]
qa/cephfs: add and use get_ceph_cmd_stdout()

Add method get_ceph_cmd_stdout() to class CephFSTestCase so that one
doesn't have to type something as long as
"self.mds_cluster.mon_manager.raw_cluster_cmd()" to execute a
command and get its output. And delete and replace
CephFSTestCase.run_cluster_cmd() too.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 13168834e374120d9c319a120a35768ddbc70de5)

Conflicts:
qa/tasks/cephfs/caps_helper.py
- This file is very different in Reef.
qa/tasks/cephfs/test_mirroring.py
- Commit e4dd0e41a3a0 was not present on main but it is now
  present on main as well as on Reef, which leads to conflict.
- On Reef branch, the line before that patch in this commit was
  thus creating a conflict when the PR branch for this commit
  series was rebased on latest Reef.

15 months agoqa/cephfs: add and use run_ceph_cmd()
Rishabh Dave [Thu, 16 Mar 2023 09:41:08 +0000 (15:11 +0530)]
qa/cephfs: add and use run_ceph_cmd()

Instead of writing something as long as
"self.mds_cluster.mon_manager.run_cluster_cmd()" to execute a command,
let's add a helper method to class CephFSTestCase and use it instead.

With this, running a command becomes simple - "self.run_ceph_cmd()".

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit f8f2154e54e202996b24904162da6022081e9d93)

Conflicts:
qa/tasks/cephfs/test_damage.py
This file is slightly different because this commit
c8f8324ee2fae48e8d3c2bbdbf45cc9ffe46fd4c was merged on main and
backported after the commit being cherry-picked here was merged
in main.

15 months agoqa/cephfs: add and use get_ceph_cmd_result()
Rishabh Dave [Tue, 14 Mar 2023 19:43:56 +0000 (01:13 +0530)]
qa/cephfs: add and use get_ceph_cmd_result()

To run a command and get its return value, instead of typing something
as long as "self.mds_cluster.mon_manager.raw_cluster_cmd_result" add a
hepler method in CephFSTestCase and use it. This makes this task very
simple - "self.get_ceph_cmd_result()".

Also, remove method CephFSTestCase.run_cluster_cmd_result() in favour of
this new method.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 82814ac49d31b0fc48ac4f3ec659a9f0a822acd2)

15 months agoqa/cephfs: create admin_remote instance in CephFSTestCase
Rishabh Dave [Wed, 15 Mar 2023 20:40:43 +0000 (02:10 +0530)]
qa/cephfs: create admin_remote instance in CephFSTestCase

admin_remote contains lots of methods that can be useful during testing,
so let's have an easy access to it too.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 2e12e5086d067ff110f4f9c827b40cf58aa04b91)

15 months agoqa/cephfs: create CephManager instance in CephFSTestCase
Rishabh Dave [Mon, 13 Mar 2023 13:05:50 +0000 (18:35 +0530)]
qa/cephfs: create CephManager instance in CephFSTestCase

To run a Ceph command conveniently, run_cluster_cmd(), raw_cluster_cmd()
or raw_cluster_cmd_result() must be called. These methods are available
in class CephManager which in turn is available only if an instance of
Filesystem, MDSCluster, CephCluster or MgrCluster is initialized. Having
an instance of CephManager in CephFSTestCase will provide easy access to
these methods.

For example, in CephFS tests writing "self.mon_manager.raw_cluser_cmd()"
instead of writing "self.mds_cluster.mon_manager.raw_cluster()" will
suffice.

This commit provides a basis for upcoming commits in this patch series.
With next patches, running Ceph command will be further simplified. Just
writing self.run_ceph_cmd() will suffice for running a CephFS command.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 0c0041005ee127e3a488b111181c1da8035d199c)

15 months agoqa/cephfs: don't import entire module needlessly
Rishabh Dave [Sat, 24 Jun 2023 13:46:39 +0000 (19:16 +0530)]
qa/cephfs: don't import entire module needlessly

Importing entire module ceph_manager.py is pointless since only
ceph_manager.CephManager is required in qa/tasks/cephfs/filesystem.py.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 437f2c75f5f5a98b45d8fceb3e209b7945cd6e71)

15 months agomds: skip sr moves when target is an unlinked dir 56672/head
Patrick Donnelly [Tue, 27 Feb 2024 00:44:27 +0000 (19:44 -0500)]
mds: skip sr moves when target is an unlinked dir

A directory in the stray directory cannot have any HEAD inodes with caps so
there is no need to move anything to the snaprealm opened for the unlinked
directory.

Following the parent commit's reproducer, the behavior now looks expectedly like:

    2024-02-27T02:26:59.049+0000 7f5b095f3700 10 mds.0.cache.ino(0x100000f4575) open_snaprealm snaprealm(0x100000f4575 seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x5632a57f9680) parent is snaprealm(0x1 seq e lc e cr e cps 1 snaps={2=snap(2 0x1 'one' 2024-02-27T01:34:36.001053+0000),3=snap(3 0x1 'two' 2024-02-27T01:34:48.623349+0000),6=snap(6 0x1 'six' 2024-02-27T02:03:51.619896+0000),7=snap(7 0x1 'seven' 2024-02-27T02:04:28.375336+0000),8=snap(8 0x1 '1' 2024-02-27T02:06:14.170884+0000),9=snap(9 0x1 '2' 2024-02-27T02:09:47.158624+0000),a=snap(a 0x1 '3' 2024-02-27T02:18:24.666934+0000),b=snap(b 0x1 '4' 2024-02-27T02:18:38.268874+0000),c=snap(c 0x1 '5' 2024-02-27T02:23:13.183995+0000),d=snap(d 0x1 '6' 2024-02-27T02:25:25.593014+0000),e=snap(e 0x1 '7' 2024-02-27T02:26:55.184945+0000)} last_modified 2024-02-27T02:26:55.184945+0000 change_attr 11 0x5632861c5680)
    2024-02-27T02:26:59.049+0000 7f5b095f3700 10  mds.0.cache.snaprealm(0x1 seq 14 0x5632861c5680) split_at: snaprealm(0x100000f4575 seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x5632a57f9680) on [inode 0x100000f4575 [...f,head] ~mds0/stray0/100000f4575/ auth v1199 pv1200 ap=3 snaprealm=0x5632a57f9680 DIRTYPARENT f() n(v0 1=0+1) old_inodes=1 (ilink xlockdone x=1) (isnap xlockdone x=1) (inest lock) (ifile excl) (iversion lock w=1 last_client=4365) caps={4365=pAsLsXsFsx/AsLsXsFsx@6},l=4365 | request=1 lock=3 dirfrag=1 caps=1 dirtyparent=1 dirty=1 waiter=0 authpin=1 0x563385e94000]
    2024-02-27T02:26:59.049+0000 7f5b095f3700 10  mds.0.cache.snaprealm(0x1 seq 14 0x5632861c5680)  moving unlinked directory inode

Discussions with Dan van der Ster led to the creation of this patch.

Fixes: https://tracker.ceph.com/issues/53192
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Signed-off-by: Dan van der Ster <dan.vanderster@clyso.com>
(cherry picked from commit c190a3f1633e9282772e5ec54fe10556856a2540)

15 months agomds: memoize descendent results during realm splits
Patrick Donnelly [Fri, 12 Nov 2021 00:43:27 +0000 (19:43 -0500)]
mds: memoize descendent results during realm splits

This change uses an unordered_map to memoize results of CInode::is_ancestor_of
so that subsequent invocations can skip directory inodes which are already
known to not be a descendent of the target directory.

In the worst case, this unordered_map can grow to the number of inodes in
memory when all inodes are directories and at least one client has a cap for
each inode. However, in general this will not be the case. The size of each
entry in the map will be a 64-bit pointer and bool. The total size will vary
across platforms but we can say that with a conservative estimate of 192 bits /
entry overhead (including the entry linked list pointer in the bucket), the map
will grow to ~24MB / 1M inodes.

The result of this change is not eye-popping but it does have a significant performance advantage.

For an unpatched MDS with 1M inodes with caps in the global snaprealm (with debugging commits preceding this one):

    2024-02-27T01:08:53.247+0000 7f4be40ec700  2 mds.0.cache Memory usage:  total 6037860, rss 5710800, heap 215392, baseline 199008, 1000251 / 1000323 inodes have caps, 1000251 caps, 0.999928 caps per inode
    ...
    2024-02-27T01:08:54.000+0000 7f4be18e7700 10  mds.0.cache.snaprealm(0x1 seq 3 0x55feaf85ad80) split_at: snaprealm(0x1000000043b seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x55feb986b200) on [inode 0x1000000043b [...4,head] ~mds0/stray8/1000000043b/ auth v152 pv153 ap=3 snaprealm=0x55feb986b200 f() n(v0 1=0+1) old_inodes=1 (ilink xlockdone x=1) (isnap xlockdone x=1) (ifile excl) (iversion lock w=1 last_client=4361) caps={4361=pAsXsFs/-@6},l=4361 | request=1 lock=3 caps=1 authpin=1 0x56000423d180]
    2024-02-27T01:08:54.649+0000 7f4be18e7700 10 mds.0.cache.ino(0x1000000043b) move_to_realm joining realm snaprealm(0x1000000043b seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x55feb986b200), leaving realm snaprealm(0x1 seq 3 lc 3 cr 3 cps 1 snaps={2=snap(2 0x1 'one' 2024-02-27T01:06:29.440802+0000),3=snap(3 0x1 'two' 2024-02-27T01:06:43.209349+0000)} last_modified 2024-02-27T01:06:43.209349+0000 change_attr 2 0x55feaf85ad80)
    2024-02-27T01:08:54.750+0000 7f4be18e7700 10  mds.0.cache.snaprealm(0x1 seq 3 0x55feaf85ad80) split_at: split 1 inodes

so around 750ms to check all inodes_with_caps (1M) in the global snaprealm. This result was fairly consistent for multiple tries.

For a 100k split:

    2024-02-27T04:12:27.548+0000 7f2da9dbe700 10 mds.0.cache.ino(0x1000000000f) open_snaprealm snaprealm(0x1000000000f seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x563553c92900) parent is snaprealm(0x1 seq 2 lc 2 cr 2 cps 1 snaps={2=snap(2 0x1 '1' 2024-02-27T04:12:13.803030+0000)} last_modified 2024-02-27T04:12:13.803030+0000 change_attr 1 0x563553abed80)
    2024-02-27T04:12:27.548+0000 7f2da9dbe700 10  mds.0.cache.snaprealm(0x1 seq 2 0x563553abed80) split_at: snaprealm(0x1000000000f seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x563553c92900) on [inode 0x1000000000f [...3,head] /tmp.K9bdjohIVa/ auth v10972 ap=2 snaprealm=0x563553c92900 f(v0 m2024-02-27T04:03:37.953918+0000 1=0+1) n(v106 rc2024-02-27T04:12:27.544141+0000 rs1 99755=0+99755) old_inodes=1 (isnap xlock x=1 by 0x5636a6372900) (inest lock dirty) (ifile excl) (iversion lock w=1 last_client=20707) caps={20707=pAsLsXsFsx/AsLsXsFsx@8},l=20707 | dirtyscattered=1 request=1 lock=2 dirfrag=1 caps=1 dirtyrstat=0 dirtyparent=0 dirty=1 waiter=0 authpin=1 0x563553cfd180]
    2024-02-27T04:12:28.886+0000 7f2da9dbe700 10  mds.0.cache.snaprealm(0x1 seq 2 0x563553abed80) split_at: split 100031 inodes

or about 1,338ms. This caused a split of 100k inodes. This takes more time
because directories are actually moved to the snaprealm with a lot of list
twiddling for caps.

With this patch, we bring that down, for 1 split:

    2024-02-27T02:09:48.549+0000 7ff854ad4700  2 mds.0.cache Memory usage:  total 5859852, rss 4290012, heap 231776, baseline 190816, 1000312 / 1000327 inodes have caps, 1000312 caps, 0.999985 caps per inode
    ...
    2024-02-27T02:09:48.550+0000 7ff8522cf700 10 mds.0.cache.ino(0x100000f456f) open_snaprealm snaprealm(0x100000f456f seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x559e2b4fab40) parent is snaprealm(0x1 seq 9 lc 9 cr 9 cps 1 snaps={2=snap(2 0x1 'one' 2024-02-27T01:34:36.001053+0000),3=snap(3 0x1 'two' 2024-02-27T01:34:48.623349+0000),6=snap(6 0x1 'six' 2024-02-27T02:03:51.619896+0000),7=snap(7 0x1 'seven' 2024-02-27T02:04:28.375336+0000),8=snap(8 0x1 '1' 2024-02-27T02:06:14.170884+0000),9=snap(9 0x1 '2' 2024-02-27T02:09:47.158624+0000)} last_modified 2024-02-27T02:09:47.158624+0000 change_attr 6 0x559dfd4ad8c0)
    2024-02-27T02:09:48.550+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 9 0x559dfd4ad8c0) split_at: snaprealm(0x100000f456f seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x559e2b4fab40) on [inode 0x100000f456f [...a,head] ~mds0/stray2/100000f456f/ auth v1164 pv1165 ap=3 snaprealm=0x559e2b4fab40 DIRTYPARENT f() n(v0 1=0+1) old_inodes=1 (ilink xlockdone x=1) (isnap xlockdone x=1) (inest lock) (ifile excl) (iversion lock w=1 last_client=4365) caps={4365=pAsLsXsFsx/AsLsXsFsx@6},l=4365 | request=1 lock=3 dirfrag=1 caps=1 dirtyparent=1 dirty=1 waiter=0 authpin=1 0x559e8a8bd600]
    2024-02-27T02:09:48.550+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 9 0x559dfd4ad8c0)  open_children are 0x559dfd4add40,0x559e1cca1d40
    2024-02-27T02:09:48.919+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 9 0x559dfd4ad8c0) split_at: split 1 inodes

or about 370ms. This was also fairly consistent across multiple tries.

For a 100k split:

    2024-02-27T01:52:24.500+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 3 0x559dfd4ad8c0) split_at: snaprealm(0x10000000013 seq 0 lc 0 cr 0 cps 1 snaps={} last_modified 0.000000 change_attr 0 0x559e1cca1d40) on [inode 0x10000000013 [...5,head] /tmp.RIUAaU5wuE/ auth v10499 ap=2 snaprealm=0x559e1cca1d40 f(v0 m2024-02-27T01:16:04.611198+0000 1=0+1) n(v122 rc2024-02-27T01:52:24.495465+0000 rs1 100031=0+100031) old_inodes=1 (isnap xlock x=1 by 0x559ef038a880) (inest lock) (ifile excl) (iversion lock w=1 last_client=4365) caps={4365=pAsLsXsFsx/-@11},l=4365 | dirtyscattered=0 request=1 lock=2 dirfrag=1 caps=1 dirty=1 waiter=0 authpin=1 0x559e0238c580]
    2024-02-27T01:52:24.500+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 3 0x559dfd4ad8c0)  open_children are 0x559dfd4add40
    2024-02-27T01:52:25.338+0000 7ff8522cf700 10  mds.0.cache.snaprealm(0x1 seq 3 0x559dfd4ad8c0) split_at: split 100031 inodes

or about 840ms. This can be easily done by making a directory in one of the
trees created (see reproducer below).

Reproducing can be done with:

    for ((i =0; i < 10; i++)); do (pushd $(mktemp -d -p . ); for ((j = 0; j < 30; ++j)); do mkdir "$j"; pushd "$j"; done; for ((j = 0; j < 10; ++j)); do for ((k = 0; k < 10000; ++k)); do mkdir $j.$k; done & done) & done

to make 1M directories. We put the majority of directories in a 30-deep nesting
to exercise CInode::is_ancestor_of with some worst-case type scenario.

Make sure all debugging configs are disabled for the MDS/clients. Make sure the
client has a cache size to accomodate 1M caps. Make at least one snapshot:

    mkdir .snap/one

Then reproduction can be done with:

    $ mkdir tmp.qQNsTpxpvh/dir; mkdir .snap/$((++i)); rmdir tmp.qQNsTpxpvh/dir

It is not necessary to delete any snapshots to reproduce this behavior. It's
only necessary to have a lot of inodes_with_caps in a snaprealm and effect a
split.

Fixes: https://tracker.ceph.com/issues/53192
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit a0ccb79fa0806792c7ee666c667328a8aeb09e97)

15 months agomds: reduce move_to_realm verbosity
Patrick Donnelly [Tue, 27 Feb 2024 01:36:47 +0000 (20:36 -0500)]
mds: reduce move_to_realm verbosity

It can dominate logs when large splits occur.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 34cb6300b8c102d4804e6a143393e048d71b69a9)

15 months agomds: indicate when split_at is complete for analysis
Patrick Donnelly [Mon, 26 Feb 2024 16:15:13 +0000 (11:15 -0500)]
mds: indicate when split_at is complete for analysis

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 54c20f5505a989c8d7d3d42fa29d48d63240b9a2)

15 months agomds: increase debug lvl for inode listing at sr split
Patrick Donnelly [Mon, 26 Feb 2024 16:17:42 +0000 (11:17 -0500)]
mds: increase debug lvl for inode listing at sr split

This can print a ludicrous number of lines for large cache sizes.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 681169cb94bf990c41135251f984b3d161808ca6)

15 months agomds: refactor debug print of func name
Patrick Donnelly [Mon, 26 Feb 2024 16:14:48 +0000 (11:14 -0500)]
mds: refactor debug print of func name

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 2f937772c9d3493f020cd7be0480ee550f4f791d)

15 months agomds: skip print of empty_children if empty
Patrick Donnelly [Mon, 26 Feb 2024 16:14:29 +0000 (11:14 -0500)]
mds: skip print of empty_children if empty

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 7c1823ae5e04b283ed1ca0a02977549469a7845b)

15 months agoMerge pull request #56654 from aaSharma14/wip-65142-reef
Aashish Sharma [Wed, 3 Apr 2024 16:49:54 +0000 (22:19 +0530)]
Merge pull request #56654 from aaSharma14/wip-65142-reef

reef: mgr/dashboard: replace piechart plugin charts with native pie chart panel

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #56424 from batrick/wip-65092-reef
Venky Shankar [Wed, 3 Apr 2024 16:27:41 +0000 (21:57 +0530)]
Merge pull request #56424 from batrick/wip-65092-reef

reef: qa/suites/fs/workload: enable snap_schedule early

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56398 from batrick/wip-64922-reef
Venky Shankar [Wed, 3 Apr 2024 16:26:32 +0000 (21:56 +0530)]
Merge pull request #56398 from batrick/wip-64922-reef

reef: mds: ensure snapclient is synced before corruption check

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56396 from batrick/wip-65065-reef
Venky Shankar [Wed, 3 Apr 2024 16:25:54 +0000 (21:55 +0530)]
Merge pull request #56396 from batrick/wip-65065-reef

reef: qa: change log-whitelist to log-ignorelist

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56392 from batrick/wip-65058-reef
Venky Shankar [Wed, 3 Apr 2024 16:24:45 +0000 (21:54 +0530)]
Merge pull request #56392 from batrick/wip-65058-reef

reef: qa/suites/fs/nfs: use standard health ignorelist

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56211 from joscollin/wip-64919-reef
Venky Shankar [Wed, 3 Apr 2024 16:23:35 +0000 (21:53 +0530)]
Merge pull request #56211 from joscollin/wip-64919-reef

reef: qa: enhance labeled perf counters test for cephfs-mirror

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #55803 from anoopcs9/wip-64565-reef
Venky Shankar [Wed, 3 Apr 2024 16:22:27 +0000 (21:52 +0530)]
Merge pull request #55803 from anoopcs9/wip-64565-reef

reef: client: Fix return in removexattr for xattrs from `system.` namespace

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56660 from zdover23/wip-doc-2024-04-03-backport-56635-to-reef
Anthony D'Atri [Wed, 3 Apr 2024 16:07:55 +0000 (12:07 -0400)]
Merge pull request #56660 from zdover23/wip-doc-2024-04-03-backport-56635-to-reef

reef: doc/dev: refine "Concepts"

15 months agoMerge pull request #56652 from aaSharma14/wip-65283-reef
Aashish Sharma [Wed, 3 Apr 2024 14:53:41 +0000 (20:23 +0530)]
Merge pull request #56652 from aaSharma14/wip-65283-reef

reef: mgr/dashboard: upgrade from old 'graph' type panels to the new 'timeseries' panel

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agodoc/dev: refine "Concepts" 56660/head
Zac Dover [Tue, 2 Apr 2024 12:23:13 +0000 (22:23 +1000)]
doc/dev: refine "Concepts"

Refine the text in the first third of the entries in the section
"Concepts" in doc/dev/peering.rst.

Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 530b11be24c6e702d4d9b9227649db8ca34591e4)

15 months agomgr/dashboard: replace piechart plugin charts with native pie chart 56654/head
Aashish Sharma [Mon, 26 Feb 2024 09:32:19 +0000 (15:02 +0530)]
mgr/dashboard: replace piechart plugin charts with native pie chart
panel

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

15 months agomgr/dashboard: upgrade from old 'graph' type panels to the new 56652/head
Aashish Sharma [Wed, 4 Oct 2023 09:07:42 +0000 (14:37 +0530)]
mgr/dashboard: upgrade from old 'graph' type panels to the new
'timeseries' panel

The graph panel type is deprecated, and disappears after Grafana v9.1 (current version is 10.0) to prevent more old type panels being created. These should be migrated to the timeseries panel type, to avoid potential problems with future Grafana versions.

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

15 months agodoc: fixing doc/cephfs/fs-volumes 56648/head
neeraj pratap singh [Fri, 15 Mar 2024 17:36:18 +0000 (23:06 +0530)]
doc: fixing doc/cephfs/fs-volumes

Fixes: https://tracker.ceph.com/issues/65267
Signed-off-by: Neeraj Pratap Singh <neesingh@redhat.com>
(cherry picked from commit 906ff4e4c240856d2e27cf9ac8c059479a86c5c9)

15 months agoMerge PR #56567 into reef
Patrick Donnelly [Tue, 2 Apr 2024 15:17:28 +0000 (11:17 -0400)]
Merge PR #56567 into reef

* refs/pull/56567/head:
doc: add releases links to toc
doc: remove releases docs

Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
15 months agoMerge PR #56479 into reef
Patrick Donnelly [Tue, 2 Apr 2024 15:14:48 +0000 (11:14 -0400)]
Merge PR #56479 into reef

* refs/pull/56479/head:
pybind/mgr/devicehealth: skip legacy objects that cannot be loaded
qa: test devicehealth legacy load of deleted snap obj
qa: allow failing whatever the active mgr is
qa: add unit tests for MgrMap down flag
mon/MgrMonitor: add "down" setting to simplify testing

Reviewed-by: Laura Flores <lflores@redhat.com>
15 months agoMerge pull request #56631 from zdover23/wip-doc-2024-04-02-backport-56614-to-reef
Anthony D'Atri [Tue, 2 Apr 2024 15:07:18 +0000 (11:07 -0400)]
Merge pull request #56631 from zdover23/wip-doc-2024-04-02-backport-56614-to-reef

reef: doc/mgr: update zabbix information

15 months agoMerge pull request #56361 from Svelar/wip-65032-reef
Yuri Weinstein [Tue, 2 Apr 2024 14:50:58 +0000 (07:50 -0700)]
Merge pull request #56361 from Svelar/wip-65032-reef

reef: ceph.spec.in: add support for openEuler OS

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
15 months agoMerge pull request #56359 from Svelar/wip-65028-reef
Yuri Weinstein [Tue, 2 Apr 2024 14:49:18 +0000 (07:49 -0700)]
Merge pull request #56359 from Svelar/wip-65028-reef

reef: mgr/dashboard/frontend:Ceph dashboard supports multiple languages

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agodoc/mgr: update zabbix information 56631/head
Zac Dover [Fri, 29 Mar 2024 11:06:28 +0000 (21:06 +1000)]
doc/mgr: update zabbix information

Include information from John Jasen about how to install Zabbix.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit ebe7651dd85ae1f1570d8c34479b9bdd1249d83c)

15 months agoMerge pull request #54729 from rishabh-d-dave/wip-63688-reef
Venky Shankar [Tue, 2 Apr 2024 06:47:07 +0000 (12:17 +0530)]
Merge pull request #54729 from rishabh-d-dave/wip-63688-reef

reef: qa/cephfs: improvements for name generators in test_volumes.py

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agoMerge pull request #56122 from xhernandez/wip-64737-reef
Venky Shankar [Tue, 2 Apr 2024 04:22:31 +0000 (09:52 +0530)]
Merge pull request #56122 from xhernandez/wip-64737-reef

reef: client: fix leak of file handles

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
15 months agomgr/dashboard:Mark placement targets as non-required in bucket form 56621/head
Afreen [Fri, 1 Mar 2024 07:26:25 +0000 (12:56 +0530)]
mgr/dashboard:Mark placement targets as non-required in bucket form

Fixes https://tracker.ceph.com/issues/64708

- adds info text explaining about placement targets
- adds fieldset to security, policy and tags for a11y
- removes placement target as required field
- when no placement target provided, request omits placement_target
  field
- hides placement atrgets ection for edit form since its not possible to
  edit after creation
- updates rgw-bucket.service.spec.ts unit test
- minor cleanups related to unncesseary css present, and changes in help
  text for object locking
- updated e2e tests for buckets to incorporate changes

Signed-off-by: Afreen <afreen23.git@gmail.com>
(cherry picked from commit a2cf1285449b88e8a053161ba8055891c51f94c2)

 Conflicts:
src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/buckets.po.ts