]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
4 weeks agotools/cephfs_mirror: Add synced files metric
Kotresh HR [Wed, 21 Jan 2026 13:18:47 +0000 (18:48 +0530)]
tools/cephfs_mirror: Add synced files metric

Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add bytes metric
Kotresh HR [Wed, 21 Jan 2026 11:55:36 +0000 (17:25 +0530)]
tools/cephfs_mirror: Add bytes metric

Add sync_bytes, total_bytes and sync_percentage
to current_syncing_snap
as below

{
    "/d0": {
        "state": "syncing",
        "current_syncing_snap": {
            "id": 3,
            "name": "d0_snap2",
            "bytes": {
                "sync_bytes": 149564940,
                "total_bytes": 149700128,
                "sync_percent": "99.91%"
            }
        },
        "last_synced_snap": {
            "id": 2,
            "name": "d0_snap1",
            "sync_duration": 45,
            "sync_time_stamp": "32269.251196s",
            "sync_bytes": 149684224,
        },
        "snaps_synced": 1,
        "snaps_deleted": 0,
        "snaps_renamed": 0
    }
}

Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Fix assert while opening handles
Kotresh HR [Wed, 14 Jan 2026 20:06:31 +0000 (01:36 +0530)]
tools/cephfs_mirror: Fix assert while opening handles

When the crawler or a datasync thread encountered an error,
it's possible that the crawler gets notified by a datasync
thread and bails out resulting in the unregister of the
particular dir_root. The other datasync threads might
still hold the same syncm object and tries to open the
handles during which the following assert is hit.

ceph_assert(it != m_registered.end());

The above assert is removed and the error is handled.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Fix dequeue of syncm on error
Kotresh HR [Wed, 14 Jan 2026 19:59:36 +0000 (01:29 +0530)]
tools/cephfs_mirror: Fix dequeue of syncm on error

On error encountered in crawler thread or datasync
thread while processing a syncm object, it's possible
that multiple datasync threads attempts the dequeue of
syncm object. Though it's safe, add a condition to avoid
it.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Handle errors in crawler thread
Kotresh HR [Wed, 14 Jan 2026 19:53:34 +0000 (01:23 +0530)]
tools/cephfs_mirror: Handle errors in crawler thread

Any error encountered in crawler threads should be
communicated to the data sync threads by marking the
crawl error in the corresponding syncm object. The
data sync threads would finish pending jobs, dequeue
the syncm object and notify crawler to bail out.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Handle error in datasync thread
Kotresh HR [Wed, 14 Jan 2026 19:35:29 +0000 (01:05 +0530)]
tools/cephfs_mirror: Handle error in datasync thread

On any error encountered in datasync threads while syncing
a particular syncm dataq, mark the datasync error and
communicate the error to the corresponding syncm's crawler
which is waiting to take a snaphsot. The crawler will log
the error and bail out.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add debug to capture file sync time
Kotresh HR [Thu, 8 Jan 2026 09:18:01 +0000 (14:48 +0530)]
tools/cephfs_mirror: Add debug to capture file sync time

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Efficient use of data sync threads
Kotresh HR [Wed, 14 Jan 2026 13:07:13 +0000 (18:37 +0530)]
tools/cephfs_mirror: Efficient use of data sync threads

The job queue is something like below for data sync threads.

  |syncm1|---------|syncm2|------...---|syncmn|
     |                |                   |
   |m_sync_dataq|   |m_sync_dataq|    |m_sync_dataq|

There is global queue of SyncMechanism objects(syncm). Each syncm
object represents a single snapshot being synced and each syncm
object owns m_sync_dataq representing list of files in the snapshot
to be synced.

The data sync threads should consume the next syncm job
if the present syncm has no pending work. This can evidently
happen if the last file being synced in the present syncm
job is a large file from it's syncm_dataq. In this case, one
data sync thread is busy syncing the large file, the rest of
data sync threads just wait for it to finish to avoid busy loop.
Instead, the idle data sync threads could start consuming the next
syncm job.

This brings in a change to data structure.
 - syncm_q has to be std::deque instead of std::queue as syncm in the
   middle can finish syncing first and that needs to be removed before
   the front

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Make datasync threads configureable
Kotresh HR [Wed, 14 Jan 2026 12:50:26 +0000 (18:20 +0530)]
tools/cephfs_mirror: Make datasync threads configureable

Add a config to configure the number of data sync threads.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Synchronize taking snapshot
Kotresh HR [Wed, 14 Jan 2026 12:30:43 +0000 (18:00 +0530)]
tools/cephfs_mirror: Synchronize taking snapshot

The crawler/entry creation thread needs to wait until
all the data is synced by datasync threads to take
the snapshot. This patch adds the necessary conditions
for the same.

It is important for the conditional flag to be part
of SyncMechanism and not part of PeerReplayer class.
The following bug would be hit if it were part of
PeerReplayer class.

When multiple directories are confiugred for mirroring as below
/d0                /d1              /d2
Crawler1         Crawler2          Crawler3
DoneEntryOps     DoneEntryOps      DoneEntryOps
WaitForSafeSnap  WaitForSafeSnap   WaitForSafeSnap

When all crawler threads are waiting at above, the data sync threads
which is done processing /d1, would notify, waking up all the crawlers
causing spurious/unwanted wake up and half baked snapshots.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add SnapDiff entries to dataq
Kotresh HR [Wed, 14 Jan 2026 12:17:47 +0000 (17:47 +0530)]
tools/cephfs_mirror: Add SnapDiff entries to dataq

Add SnapDiff entries to dataq and process the same
in datasync threads similar to RemoteSync entries.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Process entries from dataq
Kotresh HR [Wed, 14 Jan 2026 11:51:04 +0000 (17:21 +0530)]
tools/cephfs_mirror: Process entries from dataq

Consume entries from syncm's data queue and sync
them to remote.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Move dir_root to SyncMechanism
Kotresh HR [Wed, 14 Jan 2026 11:40:51 +0000 (17:10 +0530)]
tools/cephfs_mirror: Move dir_root to SyncMechanism

Store m_dir_root in parent (SyncMehansim) to make
it accessible in the data sync threads to sync
files

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Fix data sync threads completion logic
Kotresh HR [Wed, 14 Jan 2026 12:05:33 +0000 (17:35 +0530)]
tools/cephfs_mirror: Fix data sync threads completion logic

We need to exactly know when all data threads completes
the processing of a syncm. If a few threads finishes the
job, they all need to wait for the in processing threads
of that syncm to complete. Otherwise the finished threads
would be busy loop until in processing threads finishes.

And only after all threads finishes processing, the crawler
thread can be notified to take the snapshot.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Populate dataq for RemoteSync
Kotresh HR [Tue, 9 Dec 2025 10:49:57 +0000 (16:19 +0530)]
tools/cephfs_mirror: Populate dataq for RemoteSync

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Move remote_mkdir to SyncMechanism
Kotresh HR [Wed, 14 Jan 2026 11:11:50 +0000 (16:41 +0530)]
tools/cephfs_mirror: Move remote_mkdir to SyncMechanism

This is required as SyncMechanism::get_entry would sync
directories during crawl.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Mark crawl finished
Kotresh HR [Tue, 9 Dec 2025 10:05:08 +0000 (15:35 +0530)]
tools/cephfs_mirror: Mark crawl finished

After entry operations are synced and stack is empty,
mark the crawl as finished so the data sync threads'
wait logic works correctly and doesn't indefinitely wait.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add m_sync_data queue
Kotresh HR [Wed, 14 Jan 2026 09:56:25 +0000 (15:26 +0530)]
tools/cephfs_mirror: Add m_sync_data queue

Add data sync queue for each SyncMechanism.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add SyncMechanism Queue
Kotresh HR [Wed, 14 Jan 2026 08:47:07 +0000 (14:17 +0530)]
tools/cephfs_mirror: Add SyncMechanism Queue

Add a queue of shared_ptr of type SyncMechanism.
Since it's shared_ptr, the queue can hold both
shared_ptr to both RemoteSync and SnapDiffSync objects.
Each SyncMechanism holds the queue for the SyncEntry
items to be synced using the data sync threads.

The SyncMechanism queue needs to be shared_ptr because
all the data sync threads needs to access the object
of SyncMechanism to process the SyncEntry Queue.

This patch sets up the building blocks for the same.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Join datasync threads on shutdown
Kotresh HR [Tue, 25 Nov 2025 10:25:05 +0000 (15:55 +0530)]
tools/cephfs_mirror: Join datasync threads on shutdown

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Use the existing m_lock and m_cond
Kotresh HR [Wed, 14 Jan 2026 08:27:34 +0000 (13:57 +0530)]
tools/cephfs_mirror: Use the existing m_lock and m_cond

The entire snapshot is synced outside the lock.
The m_lock and m_cond pair is used for data sync
threads along with crawler threads to work well
with all terminal conditions like shutdown and
existing data structures.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agotools/cephfs_mirror: Add a pool of datasync threads
Kotresh HR [Mon, 24 Nov 2025 14:43:04 +0000 (20:13 +0530)]
tools/cephfs_mirror: Add a pool of datasync threads

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 weeks agoMerge pull request #67175 from bluikko/wip-doc-undo-66059-pip-pin
Kefu Chai [Wed, 4 Feb 2026 07:59:45 +0000 (15:59 +0800)]
Merge pull request #67175 from bluikko/wip-doc-undo-66059-pip-pin

doc: unpin pip in admin/doc-read-the-docs.txt

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agoMerge pull request #66488 from xxhdx1985126/wip-seastore-background-trans-cc-opt2
Xuehan Xu [Wed, 4 Feb 2026 04:58:59 +0000 (12:58 +0800)]
Merge pull request #66488 from xxhdx1985126/wip-seastore-background-trans-cc-opt2

crimson/os/seastore/cache: TRIM_DIRTY/CLEANER_* transactions won't invalidate other transactions anymore

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agoMerge pull request #67177 from rhcs-dashboard/fix-feedback-module-failure
David Galloway [Tue, 3 Feb 2026 21:22:39 +0000 (16:22 -0500)]
Merge pull request #67177 from rhcs-dashboard/fix-feedback-module-failure

qa/tests: wait for module to be available for connection

4 weeks agoMerge pull request #66367 from mheler/lc-tag-scan-reduction
J. Eric Ivancich [Tue, 3 Feb 2026 17:34:03 +0000 (12:34 -0500)]
Merge pull request #66367 from mheler/lc-tag-scan-reduction

rgw/lc: optimize lifecycle processing for multiple rules

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
4 weeks agoMerge pull request #66514 from BBoozmen/wip-oozmen-62063
J. Eric Ivancich [Tue, 3 Feb 2026 17:30:28 +0000 (12:30 -0500)]
Merge pull request #66514 from BBoozmen/wip-oozmen-62063

RGW: remove custom copy ctor for RGWObjectCtx and enforce no copy/move

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 weeks agoMerge pull request #66369 from BBoozmen/wip-oozmen-66100
J. Eric Ivancich [Tue, 3 Feb 2026 17:29:27 +0000 (12:29 -0500)]
Merge pull request #66369 from BBoozmen/wip-oozmen-66100

RGW: prevent shutdown hang by reconciling race between async processor and multisite sync threads

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
4 weeks agoMerge PR #66666 into main
Patrick Donnelly [Tue, 3 Feb 2026 15:45:20 +0000 (10:45 -0500)]
Merge PR #66666 into main

* refs/pull/66666/head:
ceph: fix a small error in the ceph command help

Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks agoMerge pull request #67106 from afreen23/subsystem-step-1
Afreen Misbah [Tue, 3 Feb 2026 15:03:53 +0000 (20:33 +0530)]
Merge pull request #67106 from afreen23/subsystem-step-1

mgr/dashboard: Add step 1 for subsystem form

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
4 weeks agoMerge pull request #66512 from aclamk/aclamk-fix-bs-wal-envelope-mode-size
Adam Kupczyk [Tue, 3 Feb 2026 14:46:21 +0000 (15:46 +0100)]
Merge pull request #66512 from aclamk/aclamk-fix-bs-wal-envelope-mode-size

os/bluestore/bluefs: Fix stat() for WAL envelope mode

4 weeks agoMerge pull request #66962 from rhcs-dashboard/74429-add-cert-mgmt-tabs
Pedro Gonzalez Gomez [Tue, 3 Feb 2026 09:40:25 +0000 (10:40 +0100)]
Merge pull request #66962 from rhcs-dashboard/74429-add-cert-mgmt-tabs

mgr/dashboard : Add Certificate tab under service details

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
4 weeks agoMerge pull request #66798 from Matan-B/wip-matanb-seastore-docs
Matan Breizman [Tue, 3 Feb 2026 08:06:17 +0000 (10:06 +0200)]
Merge pull request #66798 from Matan-B/wip-matanb-seastore-docs

doc/dev/crimson: Update Seastore docs

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
4 weeks agoqa/tests: wait for module to be available for connection
Nizamudeen A [Tue, 3 Feb 2026 08:03:08 +0000 (13:33 +0530)]
qa/tests: wait for module to be available for connection

Signed-off-by: Nizamudeen A <nia@redhat.com>
4 weeks agodoc: unpin pip in admin/doc-read-the-docs.txt
Ville Ojamo [Tue, 3 Feb 2026 06:28:12 +0000 (13:28 +0700)]
doc: unpin pip in admin/doc-read-the-docs.txt

7dd00ca introduced a proper fix for pip 25.3/PEP517 compatibility by
adding pyproject.toml files and the workaround in a65c46c is no longer
necessary. RTD builds with pip 25.3 and later work with the proper fix.

Remove the pinned pip in admin/doc-read-the-docs.txt and let RTD use the
default PIP version.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
4 weeks agoMerge pull request #66511 from bill-scales/issue74048_deletepg
Radoslaw Zarzynski [Mon, 2 Feb 2026 19:29:28 +0000 (20:29 +0100)]
Merge pull request #66511 from bill-scales/issue74048_deletepg

osd: Deleting PG should discard pwlc

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agomgr/dashboard : Add Certificate tab under service details
Abhishek Desai [Mon, 19 Jan 2026 08:47:54 +0000 (14:17 +0530)]
mgr/dashboard : Add Certificate tab under service details
fixes : https://tracker.ceph.com/issues/74429
Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
4 weeks agoMerge pull request #66698 from aainscow/partial_write_with_clone_fix
Alex Ainscow [Mon, 2 Feb 2026 14:13:21 +0000 (14:13 +0000)]
Merge pull request #66698 from aainscow/partial_write_with_clone_fix

osd: Do not remove objects with divergent logs if only partial writes.

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoMerge pull request #67157 from xxhdx1985126/wip-seastore-fix-possible-chksum-error
Matan Breizman [Mon, 2 Feb 2026 13:32:41 +0000 (15:32 +0200)]
Merge pull request #67157 from xxhdx1985126/wip-seastore-fix-possible-chksum-error

crimson/os/seastore/cache: fix possible extent chksum error

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agoMerge pull request #65157 from liu-chunmei/omap_rm_key
Matan Breizman [Mon, 2 Feb 2026 12:38:49 +0000 (14:38 +0200)]
Merge pull request #65157 from liu-chunmei/omap_rm_key

crimson/os/seastore: optimize omap_rm_key_range

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agoMerge pull request #67138 from idryomov/wip-74672
Ilya Dryomov [Mon, 2 Feb 2026 12:34:27 +0000 (13:34 +0100)]
Merge pull request #67138 from idryomov/wip-74672

qa/valgrind.supp: make gcm_cipher_internal suppression more resilient

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
4 weeks agoMerge pull request #67133 from rsommer/rsommer-fix-missing-smb-module
Kefu Chai [Mon, 2 Feb 2026 11:12:58 +0000 (19:12 +0800)]
Merge pull request #67133 from rsommer/rsommer-fix-missing-smb-module

debian: package mgr/smb in ceph-mgr-modules-core

Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agomgr/dashboard: Add step 1 for subsystem form
Afreen Misbah [Wed, 28 Jan 2026 13:18:52 +0000 (18:48 +0530)]
mgr/dashboard: Add step 1 for subsystem form

Fixes https://tracker.ceph.com/issues/74093
Fixes https://tracker.ceph.com/issues/74094

- updates tearsheet component css to match with carbon component
- adds laoding state to submit button
- adds support for step validation when angualr component are use for steps rather than plain html templates
- adds step one of nvmeof

Signed-off-by: Afreen Misbah <afreen@ibm.com>
4 weeks agoMerge pull request #66817 from aainscow/bad_erase_after_ro_offset_fix
Alex Ainscow [Mon, 2 Feb 2026 10:14:24 +0000 (10:14 +0000)]
Merge pull request #66817 from aainscow/bad_erase_after_ro_offset_fix

osd/ECUtil: Fix erase_after_ro_offset length calculation and add tests

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 weeks agoMerge pull request #67090 from shraddhaag/wip-shraddhaag-add-more-osd-bootstrap-logs
Shraddha Agrawal [Mon, 2 Feb 2026 10:05:16 +0000 (15:35 +0530)]
Merge pull request #67090 from shraddhaag/wip-shraddhaag-add-more-osd-bootstrap-logs

crimson/osd: add verbose DEBUG logs for OSD startup

4 weeks agocrimson/os/seastore/cache: fix possible extent chksum error wip-seastore-fix-possible-chksum-error
Xuehan Xu [Mon, 2 Feb 2026 05:52:47 +0000 (13:52 +0800)]
crimson/os/seastore/cache: fix possible extent chksum error

See: https://github.com/ceph/ceph/pull/66506#issuecomment-3821417465

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
4 weeks agoMerge pull request #66597 from anthonyeleven/reefunstretch
Anthony D'Atri [Mon, 2 Feb 2026 04:04:51 +0000 (23:04 -0500)]
Merge pull request #66597 from anthonyeleven/reefunstretch

doc/rados/operations: Clarify exiting in stretch-mode.rst

4 weeks agoMerge pull request #67144 from idryomov/wip-74676
Ilya Dryomov [Sat, 31 Jan 2026 20:41:11 +0000 (21:41 +0100)]
Merge pull request #67144 from idryomov/wip-74676

qa/tasks/rbd_mirror_thrash: don't use random.randrange() on floats

Reviewed-by: Ramana Raja <rraja@redhat.com>
4 weeks agoMerge pull request #67143 from idryomov/wip-74671
Ilya Dryomov [Sat, 31 Jan 2026 20:40:38 +0000 (21:40 +0100)]
Merge pull request #67143 from idryomov/wip-74671

qa/workunits/rbd: use the same qemu-iotests version throughout

Reviewed-by: Ramana Raja <rraja@redhat.com>
4 weeks agoMerge pull request #67142 from idryomov/wip-74670
Ilya Dryomov [Sat, 31 Jan 2026 20:39:58 +0000 (21:39 +0100)]
Merge pull request #67142 from idryomov/wip-74670

qa/tasks/qemu: rocky 10 enablement

Reviewed-by: Ramana Raja <rraja@redhat.com>
4 weeks agoMerge pull request #65862 from saschalucas/zonegroup_remove
Anthony D'Atri [Sat, 31 Jan 2026 13:08:15 +0000 (08:08 -0500)]
Merge pull request #65862 from saschalucas/zonegroup_remove

doc: fix syntax for removing zone from zonegroup

4 weeks agoMerge pull request #67130 from bluikko/wip-doc-dev-health-checks-re-add-diagrams
bluikko [Sat, 31 Jan 2026 03:56:34 +0000 (10:56 +0700)]
Merge pull request #67130 from bluikko/wip-doc-dev-health-checks-re-add-diagrams

doc/dev: add sequence diagrams back to health-reports.rst

4 weeks agoMerge pull request #67120 from artsiukhou/patch-2
Joseph Mundackal [Sat, 31 Jan 2026 02:29:04 +0000 (21:29 -0500)]
Merge pull request #67120 from artsiukhou/patch-2

docs: monitoring: Fix typo thughtput -> throughput

4 weeks agoMerge pull request #66961 from aainscow/ec_memory_leak
Laura Flores [Fri, 30 Jan 2026 23:42:41 +0000 (17:42 -0600)]
Merge pull request #66961 from aainscow/ec_memory_leak

osd: Fix memory leak of ECDummyOp

Reviewed-by: Radosław Zarzyński <Radoslaw.Adam.Zarzynski@ibm.com>
Reviewed-by: Ronen Friedman <rfriedma@ibm.com>
Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
4 weeks agoqa/tasks/rbd_mirror_thrash: don't use random.randrange() on floats
Ilya Dryomov [Fri, 30 Jan 2026 15:32:35 +0000 (16:32 +0100)]
qa/tasks/rbd_mirror_thrash: don't use random.randrange() on floats

This stopped working in Python 3.12:

  Changed in version 3.12: Automatic conversion of non-integer types
  is no longer supported. Calls such as randrange(10.0) and
  randrange(Fraction(10, 1)) now raise a TypeError.

Fixes: https://tracker.ceph.com/issues/74676
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
4 weeks agoqa/workunits/rbd: use the same qemu-iotests version throughout
Ilya Dryomov [Thu, 29 Jan 2026 20:25:55 +0000 (21:25 +0100)]
qa/workunits/rbd: use the same qemu-iotests version throughout

"platform:el10" could be appended to the grep pattern for v2.11.0 but
we no longer test on any distro needing v2.3.0 or v2.2.0-rc3.

Fixes: https://tracker.ceph.com/issues/74671
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
4 weeks agoMerge pull request #66949 from rhcs-dashboard/74411-add-cert-column
Pedro Gonzalez Gomez [Fri, 30 Jan 2026 20:00:26 +0000 (21:00 +0100)]
Merge pull request #66949 from rhcs-dashboard/74411-add-cert-column

mgr/dashboard : Add Cert Status column to services page

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 weeks agoMerge pull request #62201 from tobias-urdin/rgw-keystone-remove-legacy-admin-token
Casey Bodley [Fri, 30 Jan 2026 19:10:58 +0000 (14:10 -0500)]
Merge pull request #62201 from tobias-urdin/rgw-keystone-remove-legacy-admin-token

rgw/auth: Remove legacy Keystone admin token

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 weeks agoqa/tasks/qemu: adjust NFS service name for Rocky 10
Ilya Dryomov [Tue, 11 Nov 2025 17:31:56 +0000 (18:31 +0100)]
qa/tasks/qemu: adjust NFS service name for Rocky 10

Fixes: https://tracker.ceph.com/issues/74670
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
4 weeks agoqa/tasks/qemu: install genisoimage package
Ilya Dryomov [Tue, 11 Nov 2025 15:33:16 +0000 (16:33 +0100)]
qa/tasks/qemu: install genisoimage package

genisoimage is expected to be included in our base images but currently
isn't on Rocky 10.  Since it's quite a niche thing, let's install the
package explicitly.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
4 weeks agoMerge pull request #67139 from idryomov/wip-74669
Ilya Dryomov [Fri, 30 Jan 2026 16:23:06 +0000 (17:23 +0100)]
Merge pull request #67139 from idryomov/wip-74669

qa/workunits/rbd: reduce randomized sleeps in live import tests

Reviewed-by: Miki Patel <miki.patel132@gmail.com>
5 weeks agodocs: monitoring: Fix typo thughtput -> throughput
Vova Artsiukhou [Thu, 29 Jan 2026 12:24:15 +0000 (12:24 +0000)]
docs: monitoring: Fix typo thughtput -> throughput

s/thughtput/throughput/

Signed-off-by: Vova Artsiukhou <1358483+artsiukhou@users.noreply.github.com>
5 weeks agoqa/workunits/rbd: reduce randomized sleeps in live import tests
Ilya Dryomov [Thu, 29 Jan 2026 20:41:03 +0000 (21:41 +0100)]
qa/workunits/rbd: reduce randomized sleeps in live import tests

These tests were tuned for slower hardware than what we have now.
Currently "rbd migration execute" always finishes (successfully) before
the NBD server is killed.

Fixes: https://tracker.ceph.com/issues/74669
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 weeks agoqa/valgrind.supp: make gcm_cipher_internal suppression more resilient
Ilya Dryomov [Tue, 11 Nov 2025 20:39:58 +0000 (21:39 +0100)]
qa/valgrind.supp: make gcm_cipher_internal suppression more resilient

gcm_cipher_internal() and ossl_gcm_stream_final() make it to the stack
trace only on CentOS Stream 9.  On Ubuntu 22.04 and Rocky 10, it looks
as follows:

Thread 4 msgr-worker-1:
Conditional jump or move depends on uninitialised value(s)
   at 0x70A36D4: ??? (in /usr/lib64/libcrypto.so.3.2.2)
   by 0x70A39A1: ??? (in /usr/lib64/libcrypto.so.3.2.2)
   by 0x6F8A09C: EVP_DecryptFinal_ex (in /usr/lib64/libcrypto.so.3.2.2)
   by 0xB498C1F: ceph::crypto::onwire::AES128GCM_OnWireRxHandler::authenticated_decrypt_update_final(ceph::buffer::v15_2_0::list&) (crypto_onwire.cc:271)
   by 0xB4992D7: ceph::msgr::v2::FrameAssembler::disassemble_preamble(ceph::buffer::v15_2_0::list&) (frames_v2.cc:281)
   by 0xB482D98: ProtocolV2::handle_read_frame_preamble_main(std::unique_ptr<ceph::buffer::v15_2_0::ptr_node, ceph::buffer::v15_2_0::ptr_node::disposer>&&, int) (ProtocolV2.cc:1149)
   by 0xB475318: ProtocolV2::run_continuation(Ct<ProtocolV2>&) (ProtocolV2.cc:54)
   by 0xB457012: AsyncConnection::process() (AsyncConnection.cc:495)
   by 0xB49E61A: EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*) (Event.cc:492)
   by 0xB49EA9D: UnknownInlinedFun (Stack.cc:50)
   by 0xB49EA9D: UnknownInlinedFun (invoke.h:61)
   by 0xB49EA9D: UnknownInlinedFun (invoke.h:111)
   by 0xB49EA9D: std::_Function_handler<void (), NetworkStack::add_thread(Worker*)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (std_function.h:290)
   by 0xBB11063: ??? (in /usr/lib64/libstdc++.so.6.0.33)
   by 0x4F17119: start_thread (in /usr/lib64/libc.so.6)

The proposal to amend the existing suppression so that it's tied to the
specific callsite rather than libcrypto internals [1] received a thumbs
up from Radoslaw.

[1] https://github.com/ceph/ceph/pull/61689#issuecomment-2650179891

Fixes: https://tracker.ceph.com/issues/74672
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
5 weeks agoMerge pull request #67101 from afreen23/nvme-ns-api
Afreen Misbah [Fri, 30 Jan 2026 11:11:08 +0000 (16:41 +0530)]
Merge pull request #67101 from afreen23/nvme-ns-api

mgr/dashboard: fetch all namespaces in a gateway group

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: pujaoshahu <pshahu@redhat.com>
5 weeks agoMerge pull request #66771 from rhcs-dashboard/delete-subsystem
Nizamudeen A [Fri, 30 Jan 2026 08:56:27 +0000 (14:26 +0530)]
Merge pull request #66771 from rhcs-dashboard/delete-subsystem

mgr/dashboard: Fix nvmeof subsystems delete modal

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Naman Munet <nmunet@redhat.com>
5 weeks agodebian: package mgr/smb in ceph-mgr-modules-core wip-pr-67133
Roland Sommer [Fri, 30 Jan 2026 07:54:49 +0000 (08:54 +0100)]
debian: package mgr/smb in ceph-mgr-modules-core

The `BaseController` auto-imports the packaged `mgr/dashboard/controllers/smb.py`
file, which in turn wants to import `smb.enums` etc. which is part of the `smb`
package which is missing from `debian/ceph-mgr-modules-core.install`, thus
missing in the package. The missing module causes an exception
`ModuleNotFoundError: No module named 'smb'` on mgr instances when running a
ceph tentacle cluster installed from debian packages.

See: https://tracker.ceph.com/issues/74268
Signed-off-by: Roland Sommer <rol@ndsommer.de>
5 weeks agomgr/dashboard: fetch all namespaces in a gateway group
Afreen Misbah [Wed, 28 Jan 2026 09:59:08 +0000 (15:29 +0530)]
mgr/dashboard: fetch all namespaces in a gateway group

- adds a new API /api/gateway_group/{group}/namespace
- updates tests
- needed for UI flows and in general to fetch all namespaces, could not change existing API due to the maintenence of backward compatibility
- in a followup PR will add server side pagination

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

Signed-off-by: Afreen Misbah <afreen@ibm.com>
5 weeks agodoc/dev: add sequence diagrams back to health-reports.rst
Ville Ojamo [Fri, 30 Jan 2026 04:47:40 +0000 (11:47 +0700)]
doc/dev: add sequence diagrams back to health-reports.rst

The sequence diagrams were removed in ce96ddd because they were causing
issues. Add them back as SVG images. Include as comments the source code
used to generate the diagrams.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
5 weeks agoMerge pull request #67114 from tchaikov/wip-vstart-sans-egrep
Ilya Dryomov [Fri, 30 Jan 2026 00:19:16 +0000 (01:19 +0100)]
Merge pull request #67114 from tchaikov/wip-vstart-sans-egrep

vstart: replace obsolescent egrep with grep -E

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
5 weeks agoMerge pull request #65632 from phlogistonjohn/jjm-smb-hosts-allow
John Mulligan [Thu, 29 Jan 2026 23:28:44 +0000 (18:28 -0500)]
Merge pull request #65632 from phlogistonjohn/jjm-smb-hosts-allow

smb: support shares equivalent for hosts allow

Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
Reviewed-by: Shwetha Acharya <sacharya@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Adam King <adking@redhat.com>
5 weeks agoMerge pull request #66966 from tchaikov/wip-pybind-build-failure
Kefu Chai [Thu, 29 Jan 2026 23:01:24 +0000 (07:01 +0800)]
Merge pull request #66966 from tchaikov/wip-pybind-build-failure

pybind: add pyproject.toml to fix ReadTheDocs builds with pip 25.3+

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
5 weeks agoMerge pull request #67093 from guits/fix-node-proxy-ssl-certs
Adam King [Thu, 29 Jan 2026 17:16:34 +0000 (12:16 -0500)]
Merge pull request #67093 from guits/fix-node-proxy-ssl-certs

mgr/cephadm: add certificate support and service spec for node-proxy

Reviewed-by: Adam King <adking@redhat.com>
5 weeks agoqa/workunits/smb: make the runner script easier to use manually
John Mulligan [Fri, 9 Jan 2026 16:25:43 +0000 (11:25 -0500)]
qa/workunits/smb: make the runner script easier to use manually

When testing the tests it can help speed things up to avoid
recreating the virtualenv, allow an env var SMB_REUSE_VENV=<path>
to supply a specific virtual env dir to (re)use.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/suites/orch/cephadm: enable hosts_access tests
John Mulligan [Thu, 8 Jan 2026 18:42:14 +0000 (13:42 -0500)]
qa/suites/orch/cephadm: enable hosts_access tests

Enable the hosts_access tests when running deploy_smb_mgr_basic.yaml,
deploy_smb_mgr_domain.yaml, deploy_smb_mgr_res_basic.yaml, or
deploy_smb_mgr_res_dom.yaml.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/workunits/smb: add tests for hosts_access field
John Mulligan [Thu, 8 Jan 2026 18:45:43 +0000 (13:45 -0500)]
qa/workunits/smb: add tests for hosts_access field

The recently added hosts_access field allows a share to be configured
to allow or deny hosts by IP or network. The new module reconfigures
a share to attempt a small set of access scenarios with the hosts_access
field.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/workunits/smb: add utility module for cephadm shell commands
John Mulligan [Wed, 19 Nov 2025 22:26:27 +0000 (17:26 -0500)]
qa/workunits/smb: add utility module for cephadm shell commands

Add a helper module that makes it a bit cleaner and easier to
find and interact with the cluster's 'admin node' the node where
we can run `cephadm shell` and commands within that shell.
This will allow us to make modifications to smb resources via
the ceph command and JSON in order to test various features.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/workunits/smb: extend smb test config
John Mulligan [Wed, 19 Nov 2025 21:29:25 +0000 (16:29 -0500)]
qa/workunits/smb: extend smb test config

Extend the structures provided by the test config so that we can do ssh
access to the 'admin node'.
Split server info from client info.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/workunits/smb: make the smb_cfg fixture module scoped
John Mulligan [Fri, 9 Jan 2026 14:32:56 +0000 (09:32 -0500)]
qa/workunits/smb: make the smb_cfg fixture module scoped

This means the file will only be read when pytest changes modules.
This also allows this fixture to be used with other fixtures at the
module or scope "higher" than the function scope.

See: https://docs.pytest.org/en/stable/how-to/fixtures.html#fixture-scopes

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/tasks: add client node info to smb workunit config dump
John Mulligan [Fri, 9 Jan 2026 16:12:46 +0000 (11:12 -0500)]
qa/tasks: add client node info to smb workunit config dump

When generating the big ball of config JSON that helps define
parameters for the smb tests in the workunit add client "node"
info as well.
Add a function to avoid repeating the logic of getting node
info from the teuthology remote object.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/tasks: embed use of ssh_keys task in smb workunit
John Mulligan [Wed, 7 Jan 2026 23:02:21 +0000 (18:02 -0500)]
qa/tasks: embed use of ssh_keys task in smb workunit

Automatically use the ssh_keys tasks in the smb workunit task.
It can be disabled by passing false to `ssh_keys:` config key.
This allows the node running the tests to ssh into the node where
cephadm is installed in order to execute commands within
the cephadm shell.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agoqa/workunits/smb: add hosts_access marker to pytest.ini
John Mulligan [Thu, 8 Jan 2026 18:41:53 +0000 (13:41 -0500)]
qa/workunits/smb: add hosts_access marker to pytest.ini

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agodoc/mgr: document the new smb share option hosts_access
John Mulligan [Tue, 6 Jan 2026 15:44:07 +0000 (10:44 -0500)]
doc/mgr: document the new smb share option hosts_access

Add documentation for the new `hosts_access` option on the smb
share resource.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agomgr/smb: generate smb.conf hosts allow & hosts deny values
John Mulligan [Mon, 22 Sep 2025 18:49:31 +0000 (14:49 -0400)]
mgr/smb: generate smb.conf hosts allow & hosts deny values

Using the Share resource hosts_access parameter generate
smb.conf-equivalent configuration for the 'hosts allow' and 'hosts deny'
configuration parms. Note that currently we automatically set hosts deny
to all if *any* hosts allow is set to avoid the possibly surprising
result of explicitly setting hosts to allow and then having the share
continue to allow hosts not explicitly listed.

If needed, in the future we could allow the user to override the
default deny - but I'm trying to keep it real simple for now.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agomgr/smb: add a new hosts_access field to the Share resource
John Mulligan [Mon, 22 Sep 2025 18:44:30 +0000 (14:44 -0400)]
mgr/smb: add a new hosts_access field to the Share resource

This access list can be used to allow or deny access to hosts by
IP address or network (IP/prefixlen-style). It partially borrows
from the previous work to do ip address binds.
The structure would look something like the following:
```
  hosts_access:
    - address: 192.168.7.200
      access: allow
    - address: 192.168.7.202
      access: allow
    - network: 10.10.220.0/24
      access: allow
```
or
```
  hosts_access:
    - access: deny
      network: 10.10.220.0/24
``

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agomgr/smb: add a new host access enum
John Mulligan [Mon, 22 Sep 2025 18:43:29 +0000 (14:43 -0400)]
mgr/smb: add a new host access enum

This will be used in a future change to build up an access control in
the share config that translates to 'hosts allow'/'hosts deny' in
smb.conf.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agopython-common/smb: move network conversion validation func to common
John Mulligan [Fri, 26 Sep 2025 18:22:12 +0000 (14:22 -0400)]
python-common/smb: move network conversion validation func to common

Extract code from the service_spec.py file that parses, validates and
converts network or ip address strings into a network object into a new
file so that it can be re-used more widely later.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
5 weeks agodoc/dev/crimson/seastore: Update SeaStore docs
Matan Breizman [Mon, 5 Jan 2026 09:20:36 +0000 (11:20 +0200)]
doc/dev/crimson/seastore: Update SeaStore docs

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
5 weeks agoMerge pull request #67045 from tchaikov/wip-pybind-legacy-implicit-noexcept
Ilya Dryomov [Thu, 29 Jan 2026 12:50:32 +0000 (13:50 +0100)]
Merge pull request #67045 from tchaikov/wip-pybind-legacy-implicit-noexcept

cmake: migrate Python module installation from setup.py to pip

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
5 weeks agoMerge pull request #66465 from rhcs-dashboard/inject-cert-ls-api
Pedro Gonzalez Gomez [Thu, 29 Jan 2026 09:12:31 +0000 (10:12 +0100)]
Merge pull request #66465 from rhcs-dashboard/inject-cert-ls-api

mgr/dasboard : Injest certificate mgmt API into services API

Reviewed-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
5 weeks agoMerge pull request #67060 from rhcs-dashboard/multisite-archive-zone
Aashish Sharma [Thu, 29 Jan 2026 08:00:13 +0000 (13:30 +0530)]
Merge pull request #67060 from rhcs-dashboard/multisite-archive-zone

mgr/dashboard: Add Archive zone configuration to the Dashboard

Reviewed-by: Naman Munet <nmunet@redhat.com>
5 weeks agoMerge pull request #67103 from ShreeJejurikar/wip-doc-74447
Yuval Lifshitz [Thu, 29 Jan 2026 07:54:08 +0000 (09:54 +0200)]
Merge pull request #67103 from ShreeJejurikar/wip-doc-74447

doc: Add bucket logging admin commands documentation

5 weeks agovstart: replace obsolescent egrep with grep -E
Kefu Chai [Thu, 29 Jan 2026 05:48:47 +0000 (13:48 +0800)]
vstart: replace obsolescent egrep with grep -E

The egrep command is deprecated in favor of grep -E. This change
eliminates the "egrep is obsolescent" warning when running vstart.sh.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
5 weeks agopybind/rbd: move legacy_implicit_noexcept to rbd.pyx wip-pr-67045-kefu-11
Kefu Chai [Wed, 28 Jan 2026 02:58:31 +0000 (10:58 +0800)]
pybind/rbd: move legacy_implicit_noexcept to rbd.pyx

Move the legacy_implicit_noexcept compiler directive from setup.py to
the top of rbd.pyx, making it consistent with how CephFS handles this
directive. This simplifies the build setup by:

- Removing conditional logic based on Cython version in setup.py
- Eliminating the need for compiler_directives dict and packaging import
- Making RBD's directive handling consistent with other bindings

The directive is needed for building with both Cython 0.x and Cython 3
from the same file while preserving the same behavior. Cython safely
ignores unknown compiler directives when specified at the top of .pyx
files, so this works across all supported Cython versions.

When Cython 0.x support is eventually dropped, this directive can be
replaced with explicit noexcept annotations on rbd_callback_t and
librbd_progress_fn_t type definitions.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
5 weeks agopybind: hardwire language_level to 3
Kefu Chai [Fri, 23 Jan 2026 01:36:22 +0000 (09:36 +0800)]
pybind: hardwire language_level to 3

Previously, to maintain backward compatibility with Python 2, we set
'language_level' to sys.version_info.major, so the value would be 2
when building with Python 2, and 3 with Python 3. Now that Python 2
support has been dropped, we can hardwire it to "3".

This change also removes the comment about switching to
`language_level=3str` in the future. According to the Cython 3.1+
documentation,

> language_level=3 is now the default. language_level=3str has become a
> legacy alias.

see https://cython.readthedocs.io/en/3.1.x/src/changes.html.

For context, in Cython < 3.1, language_level=3 and language_level=3str
had different meanings:
- 3 = unprefixed strings are unicode
- 3str = unprefixed strings follow Python version (bytes in Py2, unicode
  in Py3)

Since we no longer support Python 2, this distinction is irrelevant and
the comment can be safely removed.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
5 weeks agocmake: migrate Python module installation from setup.py to pip
Kefu Chai [Tue, 27 Jan 2026 07:08:28 +0000 (15:08 +0800)]
cmake: migrate Python module installation from setup.py to pip

Replace 'setup.py install' with 'pip install --use-pep517' to fix
Cython compilation failures and eliminate deprecation warnings.

Problem Statement:
The build process for Cython modules involves preprocessing .pyx files
(e.g., generating rbd_processed.pyx from rbd.pyx) and then cythonizing
with specific compiler_directives. The previous approach using separate
'setup.py build' and 'setup.py install' commands caused this failure:

```
Error compiling Cython file:
------------------------------------------------------------
...
        """
        name = cstr(name, 'name')
        cdef:
            rados_ioctx_t _ioctx = convert_ioctx(ioctx)
            char *_name = name
            librbd_progress_fn_t _prog_cb = &no_op_progress_callback
                                            ^
------------------------------------------------------------

rbd_processed.pyx:781:44: Cannot assign type 'int (*)(uint64_t, uint64_t, void *) except? -1' to 'librbd_progress_fn_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (uint64_t, uint64_t, void *) except? -1'.
```

This occurs because:
1. 'setup.py build build_ext' successfully preprocesses and cythonizes
   with compiler_directives from setup.py's cythonize() call
2. 'setup.py install' internally triggers a rebuild that:
   - Regenerates the preprocessed .pyx files
   - Re-runs cythonize() through Cython.Distutils.build_ext
   - Does NOT apply the compiler_directives from setup.py
   - Fails on the regenerated files missing required directives

New Options Explained:

`--use-pep517`:
  Addresses deprecation warning:
  ```
    DEPRECATION: Building 'rados' using the legacy setup.py bdist_wheel
    mechanism, which will be removed in a future version. pip 25.3 will
    enforce this behaviour change.
  ```
  Uses the modern PEP 517 build backend which:
  - Performs a single build pass with all compiler_directives applied
  - Prevents the implicit rebuild that caused CompileError
  - Future-proofs against pip 25.3+ which will require this

`--no-build-isolation`:
  Ensures that environment variables set by CMake are respected:
  - CC, LDSHARED (compiler toolchain)
  - CPPFLAGS, LDFLAGS (compilation flags)
  - CYTHON_BUILD_DIR, CEPH_LIBDIR (build paths)

  Without this flag, pip would create an isolated build environment
  that ignores these critical build settings.

`--no-deps`:
  Prevents pip from attempting to install Python dependencies listed
  in setup.py's install_requires. All dependencies are managed by
  CMake and the distribution's package manager, not pip.

`--ignore-installed`:
  Addresses installation error when DESTDIR is set:
  ```
    ERROR: Could not install packages due to an OSError: [Errno 13]
    Permission denied: '/usr/lib/python3/dist-packages/rados-2.0.0.egg-info'

    OSError: [Errno 18] Invalid cross-device link:
    '/usr/lib/python3/dist-packages/rados-2.0.0.egg-info' -> '/tmp/pip-uninstall-...'
  ```
  This error occurs because pip detects an existing system installation
  and tries to uninstall it before installing to DESTDIR. With
  --ignore-installed, pip skips the uninstall step and directly installs
  to the DESTDIR staging directory, which is the correct behavior for
  packaging.

Removed Options:

`--install-layout=deb`:
  This Debian-specific patch to 'setup.py install' is no longer needed.
  Modern pip automatically detects the distribution and uses the correct
  layout (dist-packages on Debian, site-packages on RPM distros).

`--single-version-externally-managed`:
  This option was specific to 'setup.py install' to prevent egg
  installation. With pip, this is handled automatically.

`--record /dev/null`:
  No longer needed as pip manages installation records internally.

`egg_info --egg-base`:
  Not needed with pip as metadata is generated automatically during
  the build process.

Not added option:
`--root-user-action=ignore`: not added
  In this change, we installing a python module using pip with
  `fakeroot` before packaging it. But pip warned:
  ```
  Error: WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behavior with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
  ```
  But we use fakeroot on purpose, this option could have been added  to
  silence this warning. But it is not available in all supported pip
  versions. see
  https://github.com/pypa/pip/commit/2e1112a8141dbdf767505fded918706e9ad61031

New environmental variable:
`DEB_PYTHON_INSTALL_LAYOUT=deb` is conditionally applied when packaging
for debian-derivative distributions. As pip does not support
`--install-layout` option. Since debian patches pip so it installs Python
modules into /usr/local/lib instead of /usr/lib where debian dh_install
helper looks for the content to be packaged, so we have to enforce the
debian layout using the environmental variable.

Working Directory Change:

Changed from `CMAKE_CURRENT_SOURCE_DIR` to `CMAKE_CURRENT_BINARY_DIR` to
keep pip's temporary files and logs in the build directory rather than
polluting the source tree.

Additional Dependencies:

Since the build process uses pip and creates a wheel distribution,
we need to add `pip` and `wheel` Python modules as build dependencies.

Python moduels packaging:

- with `--use-pep517`, pip creates .dist-info directoires as per PEP-517
instead of .egg-info, so we need to package the new metadata directory.

Future Improvements

We considered implementing a custom `build_templates` command or using
setuptools' `sub_commands` mechanism to avoid regenerating `*_processed.pyx`
files on every build (tracking dependencies via file modification times or
hash-based checks). However, to keep `setup.py` simple and maintainable,
we've deferred this optimization for future work. The current solution
using `pip install --use-pep517` ensures correct builds without additional
complexity.

This solution works correctly for both Debian and RPM packaging workflows,
both of which use DESTDIR-based staged installations.

Fixes: 719b749846
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
5 weeks agoMerge PR #66171 into main
Patrick Donnelly [Wed, 28 Jan 2026 20:44:50 +0000 (15:44 -0500)]
Merge PR #66171 into main

* refs/pull/66171/head:
qa/tasks/cephadm: add support for distro-suffix

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
5 weeks agoMerge PR #66155 into main
Patrick Donnelly [Wed, 28 Jan 2026 20:42:53 +0000 (15:42 -0500)]
Merge PR #66155 into main

* refs/pull/66155/head:
qa/tasks: update egrep to 'grep -E'

Reviewed-by: Nitzan Mordechai <nmordech@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Kefu Chai <k.chai@proxmox.com>
5 weeks agoMerge pull request #67108 from idryomov/wip-74601
Ilya Dryomov [Wed, 28 Jan 2026 20:10:09 +0000 (21:10 +0100)]
Merge pull request #67108 from idryomov/wip-74601

qa/workunits/rbd: adapt rbd_mirror.sh for trial nodes

Reviewed-by: Miki Patel <miki.patel132@gmail.com>
5 weeks agodoc/dev/crimson/index: add seastore to content list
Matan Breizman [Mon, 5 Jan 2026 08:55:32 +0000 (10:55 +0200)]
doc/dev/crimson/index: add seastore to content list

Signed-off-by: Matan Breizman <mbreizma@redhat.com>