This test constructs path for clone subvolume using path of the
subvolume the snapshot of which serves as the source of cloning
operation. This code is now outdated due to introduction of subvolume
v3 since subvolume v3 has 4 more level of directories
(<subvol-name>/roots/<uuid>/mnt) instead of 2 (<subvol-name>/uuid>).
Update the test code according to this so that it doesn't fail.
Rishabh Dave [Mon, 31 Mar 2025 17:59:25 +0000 (23:29 +0530)]
qa/cephfs: update TestPausePurging
This test has helper methods that construct paths of subvolumes after
they've been moved to trash directory. For this, subvolume path is
obtained before deletion by running "ceph fs subvolume getpath" command
and then manipulating the string obtained in the output of this command
to get the path of the subvolume after it has been moved to trash
directory.
These 2 specific string modifications are causing tests failures:
subvolume name is deleted from the "path" string and UUID is found and
added to this "path" string. This specific code is now outdated due to
introduction of subvolume v3. Revise and update it so that tests don't
fail due to introduction of subvolume v3.
This test constructs path to a specific snapshot. The code for this is
now outdated due to introduction of subvol v3. Update the code so that
the path is constructed correctly and the test can run successfully.
Rishabh Dave [Wed, 4 Jun 2025 20:53:00 +0000 (02:23 +0530)]
DNM: mgr/vol: don't unlink meta symlink until new incarnation is created
So far the meta symlink is deleted as soon as the subvolume is removed,
regardless of whether snapshots are retained. Unlinking the meta symlink
is especially a problem in case of subvolume deletion with snapshots
retained. It makes breaks subvolume discovery code (absence of meta file
implies legacy subvolume acc to current code) and also breaks code for
opening v2 and v3 subvolumes (subvolume type is needed to check if the
op for which subvolume is to be opened is allowed and absence of meta
file makes it impossible to subvolume type).
With this patch the behaviour is to not delete the meta file until
subvolume is being deleted along with all of the snapshots, if they
exist. This allows to run operate on this subvolume as meta is still
present.
If new incarntion is created for a subvolume with retained snapshots,
the meta symlink needs to be modofied to new incarnation's meta file
instead of old incarnation's meta file.
1. list_snapshots() needs to be re-defined in v3 since snapshots from
previous incarnations can also have retained snapshots and those
too needs to be listed.
2. snapshot_data_path() needs to be re-defined to cover the case where
the snapshot doesn't belong to currrent incarnation but to one of the
previous incarnation.
These issues were triggered by the part of the test that re-creates a
subvolume from its own snapshot that was retained during previous
deletion. Thus, snapshot doesn't belong to current incarnation and
therefore caused these methods to fail.
Rishabh Dave [Thu, 10 Apr 2025 20:09:37 +0000 (01:39 +0530)]
mgr/vol: add a log entry when a exception is created
Exceptions are created when an expected or an unexpected error/condition
occurs and often such case need closer inspection, especially during
debugging. To make debugging easier, log these exceptions so that
following log entries before/after/around the time when these exception
were created/raised becomes easier.
Rishabh Dave [Thu, 10 Apr 2025 18:55:03 +0000 (00:25 +0530)]
mgr/vol: handle snaps when multiple incarnation exists
When a directory for previous incarnation exists for a subvolume along
with its current incarnation, check all incarnaitions for existence of
a snapshot with given name.
Rishabh Dave [Thu, 13 Feb 2025 10:06:09 +0000 (15:36 +0530)]
mgr/vol: support subvol creation, opening and getpath in v3
In this specific commit modify subvol v3 code and subvol v2 code to
ensure subvolume creation and subvolume opening/discovery and "subvolume
getpath" command works fine.
Fixes: https://tracker.ceph.com/issues/67019 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Rishabh Dave [Sat, 29 Mar 2025 13:42:05 +0000 (19:12 +0530)]
mgr/vol: use more precise name for mark_subvolume()
mark_subvolume() is a pretty non-transparent name as it doesn't tell
what this method marks the subvolume with. A better name will make it
easier to read thos code and modify it in upcoming commits.
Rishabh Dave [Sun, 16 Feb 2025 12:42:52 +0000 (18:12 +0530)]
DNM: mgr/vol: make subvol v3 the default version
This patch is kept under a separate commit to allow easy changing of
default subvolume version. With this commit default is v3, when this
commit is dropped, it's v2.
Seena Fallah [Mon, 19 Feb 2024 09:39:24 +0000 (10:39 +0100)]
cmake: skip boost dependency on ALIAS executable targets
The current add_executable override in Boost does not support alias
targets. Although Ceph currently has no alias targets that are
affected by this limitation, addressing this issue now will benefit
future developments and personal projects.
This change enhances the robustness of the override logic, ensuring
compatibility with alias targets moving forward.
Matan Breizman [Tue, 18 Nov 2025 08:48:55 +0000 (08:48 +0000)]
qa/suites: exclude ceph-osd-crimson
Similarly to https://github.com/ceph/ceph/pull/66268.
Once crimson is enabled in RPM, ceph-osd-crimson will
be requried as a dependency.
old-clients and upgrade tests should not try to install the new package
as it is not available in older releases.
Matan Breizman [Mon, 17 Nov 2025 09:27:46 +0000 (09:27 +0000)]
qa/crontab/teuthology-crontab: use default flavor for crimson
By enabling crimson in the "default" flavor - we should be able to
cleanup "crimson-release" flavor. Update the cronjob ro use the default
build flavor.
Matan Breizman [Sun, 16 Nov 2025 11:20:01 +0000 (11:20 +0000)]
debian,ceph.spec: add ceph-osd-crimson as dependency
a37b5b5bde8c2e8d6890f16b31046119ed55f25d added ceph-osd-crimson as dependency using OR requirement.
Once ceph-osd-classic dependency is satisfied, ceph-osd-crimson package must be added manually.
In order to not add crimson packages manually (See "Containerfile"
removed lines) - mark osd-crimson as dependency if with_crimson is
enabled for rpm and if pkg.ceph.crimson build profile is enabled for debian.
With this change, users won't be required to obtain ceph-osd-crimson
package manually when relevant. Similarly to ceph-osd-classic being
a dependency for ceph-osd.
Matan Breizman [Sun, 16 Nov 2025 13:12:26 +0000 (13:12 +0000)]
qa/tasks/ceph.py: introduce crimson_compat
In an attempt to use the default flavor for both crimson and classic,
we can no longer rely on flavors to enable crimson flags.
The existing CRIMSON_COMPAT env variable is defined under "workunit",
and is not supported by tasks/ceph. Instead, introduce, a dedicated
crimson_compat option supported by tasks/ceph.
Matan Breizman [Tue, 18 Nov 2025 08:36:14 +0000 (08:36 +0000)]
ceph.spec.in: Include Crimson by default in RPM builds
With #65782 merged, Crimson could be now built as part of the default RPM build flavor.
The binaries ceph-osd-crimson and ceph-osd-classic are managed via `update-alternatives`
and selected based on priority:
- ceph-osd-classic keeps the **highest** priority (100) and remains the default.
- Switching to crimson is possible via:
update-alternatives --set ceph-osd /usr/bin/ceph-osd-crimson
Existing classic behavior remains unchanged unless the above command is explicitly executed.
Imran Imtiaz [Thu, 13 Nov 2025 10:27:28 +0000 (10:27 +0000)]
mgr/dashboard: add API endpoint to add images to consistency groups
Signed-off-by: Imran Imtiaz <imran.imtiaz@uk.ibm.com> Fixes: https://tracker.ceph.com/issues/73840
Create a consistency group dashboard API endpoint that enables adding
RBD images to the group.
Shraddha Agrawal [Mon, 17 Nov 2025 19:50:44 +0000 (01:20 +0530)]
qa/clusters/crimson: increase reactors in fixed-1 cluster
Issue: Various different tests were failing randomly due to slow
ops. There was no common ground between them, it was happening
across differnet object stores (seastore and bluestore) and
across different tests.
Cause: Since this is happening quite randomly, this is likely
happening due to low reactor count.
Solution: We are opting the solution to increase reactors used
for testing. I've increased them to 3 from the initial 2 value.
Matan Breizman [Sun, 16 Nov 2025 12:52:05 +0000 (12:52 +0000)]
qa/suites: exclude ceph-osd-classic
a37b5b5bde8c2e8d6890f16b31046119ed55f25d added ceph-osd-classic
package.
old-clients and upgrade tests should not try to install the new package
as it is not available in older releases.
Anoop C S [Tue, 21 Oct 2025 08:53:50 +0000 (14:23 +0530)]
mgr/smb: Disable posix locking in share definition
The prerequisites for supporting durable handles[1] in Samba include
disabling the mapping of POSIX locks, as well as setting the `kernel
oplocks` and `kernel sharemodes` parameters to disabled. Currently
this configuration is hard‑coded, but in the future it could be made
conditional and combined with other settings to enable persistent
handles on continuously available shares.