]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
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 )
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
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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
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 )
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 )
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
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 )
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 )
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 )
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 )
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 )
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
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
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
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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>
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>
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>
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>
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>
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>
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 )
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
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 )
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
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 )
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>
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
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
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>
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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>
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
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
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 )
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