]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 months agoinclude/cephfs: dump optmetadata 62095/head
Patrick Donnelly [Tue, 11 Mar 2025 19:03:59 +0000 (15:03 -0400)]
include/cephfs: dump optmetadata

For inspection from `dump tree` MDS command.

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

4 months agomds: set alternate_name for new fullbit dentries
Patrick Donnelly [Tue, 11 Mar 2025 19:01:46 +0000 (15:01 -0400)]
mds: set alternate_name for new fullbit dentries

Fixes: 9fbf37ade38bc1d057eda2459b0ccfd2ab40626a
Fixes: https://tracker.ceph.com/issues/70409
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 5fc94be121f8f99d0d46a2e7b41a05a9956e2fce)

Conflicts:
src/mds/journal.cc: code movement caused by referent inode changeset

4 months agoqa: test alternate_name recovery during mds failover
Patrick Donnelly [Tue, 11 Mar 2025 19:18:03 +0000 (15:18 -0400)]
qa: test alternate_name recovery during mds failover

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

4 months agoclient: avoid multiple calls to path_walk
Patrick Donnelly [Tue, 11 Mar 2025 14:28:01 +0000 (10:28 -0400)]
client: avoid multiple calls to path_walk

When we wrap a dname after a path walk, we cannot do another path walk.
Originally this method was setup to permit that but with (upcoming) encryption
it cannot work. The dname from the path_walk is in the encrypted namespace so
we cannot do another lookup in a second path_walk.

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

4 months agolibcephfs: getcwd after chdir for API constraint
Patrick Donnelly [Wed, 12 Mar 2025 14:33:02 +0000 (10:33 -0400)]
libcephfs: getcwd after chdir for API constraint

libcephfs semantics require that the old path to the cwd be returned when
getcwd is encounters an unlinked directory in the current working directory.

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

4 months agoclient: unwrap dentries for getcwd
Patrick Donnelly [Tue, 11 Mar 2025 14:51:38 +0000 (10:51 -0400)]
client: unwrap dentries for getcwd

This was missed in the path_walk refactor. readdir is not the only way to "get"
dentry names.

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

4 months agoclient: refactor / optimize chdir
Patrick Donnelly [Tue, 11 Mar 2025 14:49:50 +0000 (10:49 -0400)]
client: refactor / optimize chdir

In particular: there's no reason to do a getcwd after chdir.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 3bfd614a358dc664469f8d5f56e9248818495bb2)

4 months agotest/libcephfs: test getcwd with case insensitive dir
Patrick Donnelly [Tue, 11 Mar 2025 16:13:33 +0000 (12:13 -0400)]
test/libcephfs: test getcwd with case insensitive dir

Unfortunately, it's not easy to refactor this test into a shared method without
setting up an explicit test class which has been avoided up to this point. So
I'm going to just copy the code. Sorry.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 28bdb8e565f0b6b3090808f4759c70693d92eb05)

4 months agotest/libcephfs: refactor ManyNestedDirs
Patrick Donnelly [Tue, 11 Mar 2025 14:53:02 +0000 (10:53 -0400)]
test/libcephfs: refactor ManyNestedDirs

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

4 months agoinclude/filepath: add iterators for components
Patrick Donnelly [Tue, 11 Mar 2025 14:50:50 +0000 (10:50 -0400)]
include/filepath: add iterators for components

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

4 months agocmake/cephfs: fix options to enable client and dependencies
Casey Bodley [Wed, 5 Mar 2025 18:22:38 +0000 (13:22 -0500)]
cmake/cephfs: fix options to enable client and dependencies

invoking cmake with -DWITH_LIBCEPHFS=OFF fails to configure the client target:

CMake Error at src/client/CMakeLists.txt:13 (target_link_libraries):
  Target "client" links to:

    Boost::locale

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

because the client target is not conditional on WITH_LIBCEPHFS in src/CMakeLists.txt:

add_subdirectory(client)

if(WITH_LIBCEPHFS)

because client is also needed for ceph-fuse, make the client and its
dependencies depend on WITH_LIBCEPHFS OR WITH_FUSE

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

4 months agopybind/cephfs: use legacy noexcept for cdefs for cython 3.Y.Z
Patrick Donnelly [Tue, 4 Mar 2025 14:45:23 +0000 (09:45 -0500)]
pybind/cephfs: use legacy noexcept for cdefs for cython 3.Y.Z

For some newer versions of cython, it appears it requires explicitly specifying
noexcept but old versions of Cython 0.29.Z do not understand that attribute.

See: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#exception-values-and-noexcept

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 90ac7409279d103f8811cf31f3a530d8fff7ba12)

4 months agopybind/cephfs: increment ref before calling out to c++
Patrick Donnelly [Wed, 5 Mar 2025 16:15:20 +0000 (11:15 -0500)]
pybind/cephfs: increment ref before calling out to c++

At the time this construction seemed safe since the caller should have a
reference but it could conveivably be the only ref. We don't want the ref count
to reach 0.

Additionally, catch errors so this callback is genuinely noexcept.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 395263ceb2f351d540359f52694b48b2824e1291)

4 months agoclient: skip unexpected command replies
Patrick Donnelly [Tue, 18 Feb 2025 19:35:16 +0000 (14:35 -0500)]
client: skip unexpected command replies

Instead of marking the message as handled, give another component (or Client) a
chance to process.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 616fdd1ae394195a2628fef6f6808e035b71069d)

4 months agomgr: indicate map message is acked instead of unhandled
Patrick Donnelly [Tue, 18 Feb 2025 19:20:57 +0000 (14:20 -0500)]
mgr: indicate map message is acked instead of unhandled

This avoids messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 56cb05775a937159ee0e6e26e30fe204accb5223)

4 months agoosdc/Objecter: convert to ms_dispatch2 for ack
Patrick Donnelly [Tue, 18 Feb 2025 18:46:58 +0000 (13:46 -0500)]
osdc/Objecter: convert to ms_dispatch2 for ack

Convert ms_dispatch to ms_dispatch2 to enable indicating that a map message is
acknowledged and instead of processed (or deliberately not processed).

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

4 months agoclient: indicate maps are acked not processed
Patrick Donnelly [Tue, 18 Feb 2025 18:45:22 +0000 (13:45 -0500)]
client: indicate maps are acked not processed

Ancillary change: do not do client upkeep after map processing.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 2810ed0f60833d1c1806d2c84db3116b11f72e37)

4 months agomsg: add alternate statuses for ms_dispatch2 handling
Patrick Donnelly [Tue, 18 Feb 2025 17:41:52 +0000 (12:41 -0500)]
msg: add alternate statuses for ms_dispatch2 handling

Many dispatchers return false to allow other dispatchers also common messages
like MOSDMap or MFSMap. They implicitly depend on some dispatcher which is
always at the "tail" of the dispatcher queue to return "true" indicating the
msg was processed to avoid messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

but this cannot always happen when some libraries like the RadosClient used standalone.

So, add a variant for encapsulating other indications for how the message was
processed by dispatch2.  For example, a message may be "acknowledged" but
explicitly allow other dispatchers to try processing the message.

Note: we're using a variant to avoid updating all of the ms_dispatch code to
use the sentinel classes.

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

Conflicts:
src/nvmeof/NVMeofGwMonitorClient.cc: not present in squid
src/nvmeof/NVMeofGwMonitorClient.h: not present in squid

4 months agotools/cephfs_mirror: do not process maps with fast dispatch
Patrick Donnelly [Tue, 18 Feb 2025 18:48:39 +0000 (13:48 -0500)]
tools/cephfs_mirror: do not process maps with fast dispatch

This acquires a lock which is a no-no in the messenger.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 3b79bdbee04c270c227be3dd1cb6dfe392646f8d)

4 months agodoc: add docs for volumes interface for charmap
Patrick Donnelly [Mon, 10 Feb 2025 17:22:49 +0000 (12:22 -0500)]
doc: add docs for volumes interface for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 404d7e3278119149660d8aa1a12bac6ce6396118)

4 months agoqa: add tests for subvolume charmap settings
Patrick Donnelly [Wed, 8 Jan 2025 19:45:01 +0000 (14:45 -0500)]
qa: add tests for subvolume charmap settings

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 71c57121cf62b2b8b576e5d21bb71bdbccb6960d)

4 months agopybind/mgr/volumes: wire up charmap for subvol/subvolgroup
Patrick Donnelly [Wed, 8 Jan 2025 14:51:32 +0000 (09:51 -0500)]
pybind/mgr/volumes: wire up charmap for subvol/subvolgroup

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

4 months agopybind/mgr: send MDS commands through cephfs client
Patrick Donnelly [Wed, 5 Feb 2025 16:22:08 +0000 (11:22 -0500)]
pybind/mgr: send MDS commands through cephfs client

To avoid linking to the CephFS client statically, use the dynamically-linked
`cephfs` module to send commands to the MDS.

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

4 months agopybind/cephfs: wire up mds_command2
Patrick Donnelly [Wed, 5 Feb 2025 16:21:41 +0000 (11:21 -0500)]
pybind/cephfs: wire up mds_command2

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 72d0a76e8c5cbb357e4f4c355e8630ec8aa02088)

4 months agomgr: add module method to send notifications
Patrick Donnelly [Wed, 5 Feb 2025 16:19:25 +0000 (11:19 -0500)]
mgr: add module method to send notifications

For use by MgrModule.send_command to signal MDS command completion.

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

4 months agolibcephfs: add mds_command2 for asynchronous commands
Patrick Donnelly [Wed, 5 Feb 2025 16:18:34 +0000 (11:18 -0500)]
libcephfs: add mds_command2 for asynchronous commands

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 62601ef64202a3514cd805936535671eee836448)

4 months agomgr: excise CephFS client from mgr C++ base
Patrick Donnelly [Thu, 30 Jan 2025 22:08:07 +0000 (17:08 -0500)]
mgr: excise CephFS client from mgr C++ base

Linking to the client causes two copies of the Client library to be linked in
the ceph-mgr when modules also dynamically link to libcephfs via the "cephfs"
python library. This creates problems with duplicate boost::locale.

Instead, modules should just use the "cephfs" library to send commands to the
MDS.

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

4 months agomgr: use std namespace
Patrick Donnelly [Thu, 30 Jan 2025 22:05:25 +0000 (17:05 -0500)]
mgr: use std namespace

This C++ code was relying on the Client.h header to bring in these names from
the std:: namespace. A subsequent commit plans to remove that header so add
namespace qualifier now.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 706b2be416246dd5923478d8a7ee015246f03e95)

Conflicts:
src/mgr/DaemonServer.h: no header cleanup

4 months agodoc: add docs for CephFS charmap config
Patrick Donnelly [Tue, 31 Dec 2024 19:46:03 +0000 (14:46 -0500)]
doc: add docs for CephFS charmap config

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

4 months agoqa: add charmap tests
Patrick Donnelly [Tue, 31 Dec 2024 17:59:01 +0000 (12:59 -0500)]
qa: add charmap tests

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 84bf1898be53dcb6a088b6231c7a845ea4981dca)

4 months agoqa: add helpful exceptions for attr changes
Patrick Donnelly [Tue, 31 Dec 2024 17:57:53 +0000 (12:57 -0500)]
qa: add helpful exceptions for attr changes

It's not possible to extract the error message from stderr by the caller.

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

4 months agoqa: ignore libicu leaks
Patrick Donnelly [Mon, 24 Feb 2025 20:56:54 +0000 (15:56 -0500)]
qa: ignore libicu leaks

These are likely spurious and not interesting.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 0e9cdbe0abc839426b73f379efff26f6adb31105)

4 months agoclient: add wrappings for charmap manipuluation of dentry names
Patrick Donnelly [Wed, 19 Feb 2025 16:17:00 +0000 (11:17 -0500)]
client: add wrappings for charmap manipuluation of dentry names

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 751cf313dd5ca822c7c18ca8896ffde214605325)

4 months agoclient: add dir_result_t::dentry::print
Patrick Donnelly [Fri, 3 Jan 2025 21:14:05 +0000 (16:14 -0500)]
client: add dir_result_t::dentry::print

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 0fa4a95eadf5faf4d7ff566bc314902b48cafe85)

4 months agowin32: add libicu Windows build
Lucian Petrut [Thu, 9 Jan 2025 13:50:18 +0000 (08:50 -0500)]
win32: add libicu Windows build

cephfs introduces a new dependency: libicu. We need to update the
Windows build scripts to build and link against libicu.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
(cherry picked from commit e80d0bf0079fc61630852f3047eebfcf1ae428f5)

4 months agoCMakeLists: add boost::locale dependency for client
Patrick Donnelly [Tue, 31 Dec 2024 17:59:12 +0000 (12:59 -0500)]
CMakeLists: add boost::locale dependency for client

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

Conflicts:
src/client/CMakeLists.txt: no legacy headers

4 months agoinstall-deps: unconditionally install boost libraries
Patrick Donnelly [Wed, 8 Jan 2025 14:53:26 +0000 (09:53 -0500)]
install-deps: unconditionally install boost libraries

If we add a new Boost component, the install-deps.sh script will not install it
because other Boost libraries are installed with the desired version. Just
unconditionally install. The package manager is smart enough to skip already
installed packages.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 668a556322d8767b3e9e82230f099bcd9211f576)

4 months agotest/libcephfs: update root operation return values
Patrick Donnelly [Wed, 19 Feb 2025 17:51:32 +0000 (12:51 -0500)]
test/libcephfs: update root operation return values

Switch from EBUSY to reasonable and normal errors for operations on the root
directory. Use the Client::path_walk machinery changes from the previous commit
to catch most of them, otherwise return EINVAL (which is normal for other POSIX
fs).

Fixes: 6ed7f2364ae5507bab14c60b582929aa7b0ba400
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 292f5ac45b8190223e97b3f9ae5904605de7a888)

4 months agoclient: refactor all path traversals through path_walk
Patrick Donnelly [Thu, 14 Nov 2024 18:28:20 +0000 (13:28 -0500)]
client: refactor all path traversals through path_walk

This is groundwork to ensure that all code paths properly apply dentry name
transformations during traversal, specifically for casefolding.

Note some ancillary changes:

* readlink now correctly does lookup permission checks during path walk (previously a TODO).

* There has been some tweaking of the method signatures to accept an `const
  InodeRef&`. This was convenient when passing walk_dentry_result::diri around
  but the cascade in changes prompted me to leave it partially done to avoid
  blowing up this changeset.

It's worth noting that this change is somewhat "half done". I had made an
effort to have all operations (whether fuse or libcephfs) call path_walk once.
This was done for Client::_mkdir and a few others. See for example:

  - do_mkdirat -> _mkdir
  - mksnap -> _mkdir
  - ll_mkdir -> _mkdir
  - mkdirs -> _mkdir (this had other significant simplification/cleanup);
    however: note that we still have two calls to path_walk for any given
    directory to be created. This is not a problem because:

Client::path_walk is now more tolerant of being called in a openat-style way.
The method now accepts an anchor directory and relative path (which may be a
single dentry name for ll_* calls). It is also tolerant of the directory inode
in fact referencing the target inode with relative path == "". That is a useful
property for many openat-style APIs (although largely unofficially).  It also
means that if we resolve a path then we can pass the resolved Inode (directory)
/ string (Dentry name) pair to another method which may also call path_walk
with minimal replication of path walk work. This is done a few times in this
changeset.

Fixes: https://tracker.ceph.com/issues/66373
Fixes: https://tracker.ceph.com/issues/70100
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit b8662fdb03373ed6d29c47efa94cd391a7c9e740)

Conflicts:
src/client/Client.cc: minor code differences

4 months agotest/libcephfs: test parallel creates
Patrick Donnelly [Wed, 19 Feb 2025 20:28:46 +0000 (15:28 -0500)]
test/libcephfs: test parallel creates

That the cap_shared_gen value does not result in unexpected ENOENT.

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

4 months agotest/libcephfs: add test for lookup failure after readdir
Patrick Donnelly [Mon, 24 Feb 2025 14:46:15 +0000 (09:46 -0500)]
test/libcephfs: add test for lookup failure after readdir

That we do not get unexpected ENOENT following readdirs (particularly thinking
of cap_shared_gen differences).

Test-case-for: https://tracker.ceph.com/issues/70100
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 0f2abc9bc9390de3951e2494b5ed41ca9111cc50)

4 months agoclient: init dentry shared_gen with invalid value
Patrick Donnelly [Wed, 19 Feb 2025 17:49:09 +0000 (12:49 -0500)]
client: init dentry shared_gen with invalid value

Directories and dentries are initialized with value 0 which makes detecting a
null  (or placeholder) dentry created via Client::get_or_create difficult.  We
already do checks to see if a dentry is invalid when the directory's shared_gen
changes so use an invalid value for these synthetic dentries until they can be
appropriately updated from Client::update_dentry_lease.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 4f8d1d38a38d44ec9984912effdb9d166128ccb1)

4 months agoclient: add _lookup debugging
Patrick Donnelly [Wed, 19 Feb 2025 16:33:49 +0000 (11:33 -0500)]
client: add _lookup debugging

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

4 months agoclient: remove redundant check
Patrick Donnelly [Wed, 19 Feb 2025 16:32:06 +0000 (11:32 -0500)]
client: remove redundant check

This condition:

    (!dn->inode || dn->inode->caps_issued_mask(mask, true))

is already checked in the surrounding `if`.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 41a3f099516ae609a0dbb9c2c020f9523adbc26a)

4 months agoclient: dump InodeStat from mds
Patrick Donnelly [Mon, 28 Oct 2024 20:19:25 +0000 (16:19 -0400)]
client: dump InodeStat from mds

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 764208ead49cd4f63a518547cedecdb6b7e45aad)

Conflicts:
src/client/Client.cc: trivial code change

4 months agomds: encode optmetadata in InodeStat sent to clients
Patrick Donnelly [Wed, 23 Oct 2024 18:00:35 +0000 (14:00 -0400)]
mds: encode optmetadata in InodeStat sent to clients

Deliberately do not dump the entire struct. Some metadata may not be
appropriate to share to clients.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 6c891f96aaef5be7bc90b166d5a728516370349b)

Conflicts:
src/mds/CInode.cc: no tuple encoding

4 months agomds: check client features for charmap
Patrick Donnelly [Wed, 23 Oct 2024 18:49:49 +0000 (14:49 -0400)]
mds: check client features for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 9bbfdadd1f590fdea2fa055906f9184c7f81d676)

Conflicts:
src/mds/Server.cc: trivial comment change

4 months agomds: add client feature bit for charmap
Patrick Donnelly [Wed, 23 Oct 2024 17:54:46 +0000 (13:54 -0400)]
mds: add client feature bit for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 4ac9776adbd722c45094dcb6b2f4bb4b975c79b0)

4 months agomds: wire up vxattr for changing charmap
Patrick Donnelly [Mon, 26 Aug 2024 16:22:35 +0000 (12:22 -0400)]
mds: wire up vxattr for changing charmap

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

4 months agomds: inherit charmap on mkdir
Patrick Donnelly [Wed, 23 Oct 2024 18:01:41 +0000 (14:01 -0400)]
mds: inherit charmap on mkdir

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 033d8666373f239b18d52f3fd8c350148ba4f4a1)

4 months agomds,include: add charmap optmetadata
Patrick Donnelly [Mon, 26 Aug 2024 16:22:13 +0000 (12:22 -0400)]
mds,include: add charmap optmetadata

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

4 months agomds,include: add inode_t optional metadata
Patrick Donnelly [Mon, 26 Aug 2024 16:21:10 +0000 (12:21 -0400)]
mds,include: add inode_t optional metadata

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

4 months agoclient: hide alternate_name from API
Patrick Donnelly [Tue, 10 Sep 2024 20:47:39 +0000 (16:47 -0400)]
client: hide alternate_name from API

The dentry alternate_name was exposed primarily to facilitate testing. Instead,
put these methods in the TestClient scaffolding to allow reading/manipulating
alternate_name.

Because we will be using alternate_name to handle encrypted names and the
normalized / case folded name, we do not want the application to change the
meaning of the metadata out-of-band.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 1e34963af11210ebd940e20219728b91031e720f)

4 months agoclient: move alternate_name once
Patrick Donnelly [Thu, 12 Sep 2024 21:17:49 +0000 (17:17 -0400)]
client: move alternate_name once

Client::update_dentry_lease also moves alternate_name from the lease
which causes it to zero out alternate_name on the second move.

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

4 months agoclient: optimize alternate_name passing to helper
Patrick Donnelly [Wed, 4 Sep 2024 20:12:25 +0000 (16:12 -0400)]
client: optimize alternate_name passing to helper

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

4 months agoclient: relocate definition
Patrick Donnelly [Thu, 12 Sep 2024 22:39:33 +0000 (18:39 -0400)]
client: relocate definition

It doesn't need to be public; the API does not expose alternate_name.

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

4 months agoclient: print dentry with alternate_name on dump
Patrick Donnelly [Wed, 23 Oct 2024 16:32:55 +0000 (12:32 -0400)]
client: print dentry with alternate_name on dump

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 5c0fa1128c446a4737347dfaa100e802f3ff7ebe)

4 months agoclient: move inode dump to print method
Patrick Donnelly [Wed, 23 Oct 2024 16:32:05 +0000 (12:32 -0400)]
client: move inode dump to print method

There is no functional change.

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

4 months agomds: add debugging for encoding lease stat
Patrick Donnelly [Wed, 23 Oct 2024 17:58:59 +0000 (13:58 -0400)]
mds: add debugging for encoding lease stat

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

4 months agomds: make encode_lease a proper method
Patrick Donnelly [Wed, 23 Oct 2024 17:56:06 +0000 (13:56 -0400)]
mds: make encode_lease a proper method

So we can print debugging.

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

4 months agomds: add fscrypt metadata for inode stat size
Patrick Donnelly [Wed, 23 Oct 2024 17:59:57 +0000 (13:59 -0400)]
mds: add fscrypt metadata for inode stat size

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 59405d4da16d705ac8e509232cb986386e8ad551)

4 months agoclient: use DentryRef for ref counting in MetaRequest
Patrick Donnelly [Thu, 31 Oct 2024 00:38:36 +0000 (20:38 -0400)]
client: use DentryRef for ref counting in MetaRequest

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

4 months agoclient: add DentryRef
Patrick Donnelly [Thu, 31 Oct 2024 00:39:32 +0000 (20:39 -0400)]
client: add DentryRef

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 3c3d56fbbad08af536c293217377b6b50f755287)

4 months agoclient: add helper for determining if a perm check is necessary
Patrick Donnelly [Thu, 14 Nov 2024 17:36:14 +0000 (12:36 -0500)]
client: add helper for determining if a perm check is necessary

To be used in subsequent commits.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
(cherry picked from commit 5f53a239a44deb60b81ab83b48e9ae3bc5b7e504)

4 months agoclient: cache client_permissions config
Patrick Donnelly [Thu, 14 Nov 2024 17:39:00 +0000 (12:39 -0500)]
client: cache client_permissions config

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

4 months agoclient: add debugging for conf changes
Patrick Donnelly [Wed, 26 Feb 2025 23:23:41 +0000 (18:23 -0500)]
client: add debugging for conf changes

So logs show when they are modified.

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

4 months agoclient: sort configs
Patrick Donnelly [Thu, 14 Nov 2024 17:29:49 +0000 (12:29 -0500)]
client: sort configs

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

4 months agoclient/UserPerm: add print method
Patrick Donnelly [Thu, 14 Nov 2024 18:34:57 +0000 (13:34 -0500)]
client/UserPerm: add print method

For debug prints.

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

4 months agoclient: note mount parameters in debug log
Patrick Donnelly [Thu, 27 Feb 2025 15:42:46 +0000 (10:42 -0500)]
client: note mount parameters in debug log

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 8e88fb004521a3be1f4fbf4a5c195c4b6c40e3a0)

4 months agoclient: print stat mode in octal
Patrick Donnelly [Tue, 25 Feb 2025 02:13:18 +0000 (21:13 -0500)]
client: print stat mode in octal

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

4 months agocommon: add missing op string
Patrick Donnelly [Tue, 31 Dec 2024 18:10:27 +0000 (13:10 -0500)]
common: add missing op string

This gets converted in messenger douts.

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

4 months agoinclude/filepath: add empty path check
Patrick Donnelly [Thu, 14 Nov 2024 18:33:11 +0000 (13:33 -0500)]
include/filepath: add empty path check

When passing an empty string to filepath, it would test if the first character
is '/' which is an invalid access through std::string_view.

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

4 months agopython-common: add a utils function to replace distutils.util.strtobool
John Mulligan [Thu, 19 Sep 2024 00:44:39 +0000 (17:44 -0700)]
python-common: add a utils function to replace distutils.util.strtobool

As distutils is removed from python 3.12 ceph can no longer use the
simple conversion function once located in that module. Add our own
trivial replacement function.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 51516ba146e9602c0dea1de65b040d737d1dab6a)

4 months agoMerge PR #59616 into squid
Patrick Donnelly [Mon, 17 Mar 2025 19:24:47 +0000 (15:24 -0400)]
Merge PR #59616 into squid

* refs/pull/59616/head:
mds: move fscrypt_last_block to vector in mds_co mempool
mds: move fscrypt_file inode_t metadata to mds_co mempool
mds: move fscrypt_auth inode_t metadata to mds_co mempool
include/buffer: add helpers for uint8_t vectors

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 months agoMerge PR #61994 into squid
Patrick Donnelly [Mon, 17 Mar 2025 19:20:20 +0000 (15:20 -0400)]
Merge PR #61994 into squid

* refs/pull/61994/head:
release notes: removed lines added by automatic merge rule using 'union'
mds: use system error codes instead of CEPHFS_EXXX codes
mds,client: change result field handling in the MClientReply message
mds: prepare infra to replace CEPHFS_EXXX codes to system codes
pybind/cephfs: switch CEPHFS_E error codes to system error codes
PendingReleaseNotes: add note on client/mds error codes

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoMerge PR #62058 into squid
Patrick Donnelly [Mon, 17 Mar 2025 19:19:14 +0000 (15:19 -0400)]
Merge PR #62058 into squid

* refs/pull/62058/head:
mds: do not process client metrics message with fast dispatch

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoMerge pull request #62267 from aaSharma14/wip-70436-squid
Aashish Sharma [Mon, 17 Mar 2025 06:23:38 +0000 (11:53 +0530)]
Merge pull request #62267 from aaSharma14/wip-70436-squid

squid: mgr/dashboard: Add ceph_daemon filter to rgw overview grafana panel queries

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 months agorelease notes: removed lines added by automatic merge rule using 'union' 61994/head
Igor Golikov [Sun, 16 Mar 2025 11:18:53 +0000 (11:18 +0000)]
release notes: removed lines added by automatic merge rule using 'union'

Signed-off-by: Igor Golikov <igolikov@ibm.com>
4 months agoMerge pull request #62320 from zdover23/wip-doc-2025-03-15-backport-62319-to-squid
Zac Dover [Sat, 15 Mar 2025 03:23:47 +0000 (13:23 +1000)]
Merge pull request #62320 from zdover23/wip-doc-2025-03-15-backport-62319-to-squid

squid: doc/rados/troubleshooting: Improve troubleshooting-pg.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
4 months agodoc/rados/troubleshooting: Improve troubleshooting-pg.rst 62320/head
Anthony D'Atri [Sat, 15 Mar 2025 02:44:18 +0000 (22:44 -0400)]
doc/rados/troubleshooting: Improve troubleshooting-pg.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit 56a21cbc03e352867608c4cf0623d5566fb60cc8)

4 months agoMerge pull request #62317 from zdover23/wip-doc-2025-03-15-backport-62316-to-squid
Anthony D'Atri [Sat, 15 Mar 2025 02:46:54 +0000 (22:46 -0400)]
Merge pull request #62317 from zdover23/wip-doc-2025-03-15-backport-62316-to-squid

squid: doc/rados/operations: improve crush-map-edits.rst

4 months agodoc/rados/operations: improve crush-map-edits.rst 62317/head
Anthony D'Atri [Sat, 15 Mar 2025 01:59:57 +0000 (21:59 -0400)]
doc/rados/operations: improve crush-map-edits.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit 59a894713a9e3540ed74c763cf856636bf300099)

4 months agoMerge pull request #62297 from zdover23/wip-doc-2025-03-14-backport-62119-to-squid
Anthony D'Atri [Fri, 14 Mar 2025 12:19:14 +0000 (08:19 -0400)]
Merge pull request #62297 from zdover23/wip-doc-2025-03-14-backport-62119-to-squid

squid: doc: fixup #58689 - document SSE-C iam condition key

4 months agodoc: fixup #58689 - document SSE-C iam condition key 62297/head
dawg [Wed, 5 Mar 2025 09:12:57 +0000 (10:12 +0100)]
doc: fixup #58689 - document SSE-C iam condition key

Signed-off-by: dawg <code@dawg.eu>
(cherry picked from commit 7b4ac886621b71abb9356bce6c44b3c36b2c0ee2)

4 months agoMerge PR #57675 into squid
Patrick Donnelly [Thu, 13 Mar 2025 16:32:36 +0000 (12:32 -0400)]
Merge PR #57675 into squid

* refs/pull/57675/head:
doc: document new --output-file switch
test/cli: ignore tmp_file_template
qa/workunits: add --output-file test in cephtool workunit
common,ceph: add output file switch to dump json to
common/options: add configs for temporary files made by daemons
common/Formatter: write the pending string on flush

Reviewed-by: Nitzan Mordechai <nmordech@redhat.com>
4 months agoMerge pull request #59698 from rhcs-dashboard/wip-67929-squid
Nizamudeen A [Thu, 13 Mar 2025 14:35:05 +0000 (20:05 +0530)]
Merge pull request #59698 from rhcs-dashboard/wip-67929-squid

squid: qa/mgr/dashboard: fix test race condition

4 months agoMerge pull request #62265 from zdover23/wip-doc-2025-03-13-backport-62249-to-squid
Anthony D'Atri [Thu, 13 Mar 2025 12:07:55 +0000 (08:07 -0400)]
Merge pull request #62265 from zdover23/wip-doc-2025-03-13-backport-62249-to-squid

squid: doc/monitoring: Improve index.rst

4 months agoMerge pull request #62086 from aaSharma14/wip-70251-squid
Aashish Sharma [Thu, 13 Mar 2025 08:14:18 +0000 (13:44 +0530)]
Merge pull request #62086 from aaSharma14/wip-70251-squid

squid: mgr: fix subuser creation via dashboard

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 months agoqa/tests: retry the api call after making the request 59698/head
Nizamudeen A [Mon, 10 Feb 2025 18:18:56 +0000 (23:48 +0530)]
qa/tests: retry the api call after making the request

based on the pointer from Bill in https://tracker.ceph.com/issues/62972#note-75

Fixes: https://tracker.ceph.com/issues/62972
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 1588712b558f229d54fdfab744f2480f15333067)

4 months agoqa/dashboard: fix test_list_enabled_module failure
Nizamudeen A [Wed, 30 Oct 2024 14:01:10 +0000 (19:31 +0530)]
qa/dashboard: fix test_list_enabled_module failure

Check the ports availability and go for a new port if the current one is
not available

Fixes: https://tracker.ceph.com/issues/62972
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit a2a4a3415c0e5ceef2cb01d3bcdf5eb1fff23803)

4 months agoqa/dashboard: fix tasks.mgr.dashboard.test_health.HealthTest
Nizamudeen A [Mon, 28 Oct 2024 05:45:25 +0000 (11:15 +0530)]
qa/dashboard: fix tasks.mgr.dashboard.test_health.HealthTest

as per: https://tracker.ceph.com/issues/47612#note-14

Fixes: https://tracker.ceph.com/issues/47612
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 79d61bbb58cb34f9da678e37b4373fc84bd393f5)

4 months agoqa/tests: fix test_list_enabled_modules timeout error
Nizamudeen A [Fri, 30 Aug 2024 11:46:57 +0000 (17:16 +0530)]
qa/tests: fix test_list_enabled_modules timeout error

This test deals with enabling/disabling the modules. The assumption I
have is after enabling the
module test will wait for an active mgr but its not able to find it in
time and it fails. so taking inspiration from https://github.com/ceph/ceph/pull/58995/commits/6c7253be6f6fbfa6faed7a539cb78847fec04580 adding retries and logs to see if that's the case

Fixes: https://tracker.ceph.com/issues/62972
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit b2da7394ee02abd6525372d94cab090818cd6c8e)

4 months agoqa/mgr/dashboard: fix test race condition
Ernesto Puerta [Thu, 1 Aug 2024 23:39:40 +0000 (01:39 +0200)]
qa/mgr/dashboard: fix test race condition

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

4 months agomgr/dashboard: Add ceph_daemon filter to rgw overview grafana panel 62267/head
Aashish Sharma [Thu, 28 Nov 2024 05:58:59 +0000 (11:28 +0530)]
mgr/dashboard: Add ceph_daemon filter to rgw overview grafana panel
queries

Currently rgw_servers filtering is not working in RGW Overview garfana graphs.
It is showing data of all the RGW services, even though filter set to single service.
This PR intends to solve this issue

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

4 months agodoc/monitoring: Improve index.rst 62265/head
Anthony D'Atri [Wed, 12 Mar 2025 13:31:19 +0000 (09:31 -0400)]
doc/monitoring: Improve index.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit 1bc67295c8b75475455ff702998ae4d7fb2ec749)

4 months agoMerge pull request #62257 from rhcs-dashboard/wip-70425-squid
afreen23 [Thu, 13 Mar 2025 01:55:59 +0000 (07:25 +0530)]
Merge pull request #62257 from rhcs-dashboard/wip-70425-squid

squid: mgr/dashboard: pin lxml to fix run-dashboard-tox-make-check failure

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 months agomgr/dashboard: pin lxml to fix run-dashboard-tox-make-check failure 62257/head
Nizamudeen A [Wed, 12 Mar 2025 07:06:42 +0000 (12:36 +0530)]
mgr/dashboard: pin lxml to fix run-dashboard-tox-make-check failure

xmlsec had an upgrade yesterday night and python3-saml might need to
adapt its library accordingly I suppose. Testing a fix by pinning lxml

Another approach is being tried out separately
https://github.com/ceph/ceph/pull/62239, but that is failing with some
other errors.

Fixes: https://tracker.ceph.com/issues/70411
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 1f84505f1232dd8445df1a2a819fa000062d3934)

 Conflicts:
src/pybind/mgr/dashboard/requirements.txt
 - didn't add the dependency that are present in main and only added the
   lxml pinning

4 months agoMerge pull request #62177 from guits/wip-70367-squid
Guillaume Abrioux [Wed, 12 Mar 2025 16:13:11 +0000 (17:13 +0100)]
Merge pull request #62177 from guits/wip-70367-squid

squid: ceph-volume: allow zapping partitions on multipath devices

4 months agomgr: fix subuser creation via dashboard 62086/head
Hannes Baum [Wed, 6 Nov 2024 08:46:09 +0000 (09:46 +0100)]
mgr: fix subuser creation via dashboard

Subusers couldn't be created through the dashboard, because the get call was overwritten with Python magic due to it being the function under the HTTP call.
The get function was therefore split into an "external" and "internal" function, whereas one
can be used by functions without triggering the magic. Since the user object was then returned correctly, json.loads could be removed.

Signed-off-by: Hannes Baum <hannes.baum@cloudandheat.com>
(cherry picked from commit 90e221d0b53ad137e912b8cbd84935a8755f1fe7)

4 months agoMerge pull request #62125 from ifed01/wip-ifed-fragmentation-command-squid
Igor Fedotov [Wed, 12 Mar 2025 09:32:07 +0000 (12:32 +0300)]
Merge pull request #62125 from ifed01/wip-ifed-fragmentation-command-squid

squid: tool/ceph-bluestore-tool: fix wrong keyword for 'free-fragmentation' command

Reviewed-by: ackupczyk@ibm.com