]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/log
ceph.git
13 days agoosd/OSDMap: fix the pgs_per_weight calculation error when multiple pools 69637/head
Xuehan Xu [Wed, 24 Jun 2026 07:31:11 +0000 (15:31 +0800)]
osd/OSDMap: fix the pgs_per_weight calculation error when multiple pools
are being balanced

Before this commit, When multiple pools are being balanced,
pgs_per_weight only considers the last pool, which is wrong.

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
13 days agoosd: speed up upmap underfull fallback
Xuehan Xu [Sun, 21 Jun 2026 12:53:48 +0000 (20:53 +0800)]
osd: speed up upmap underfull fallback

According to our tests, this commit can speed up pg upmap calculations
by orders of magnitude

Performance analysis:
Suppose:
R = number of pg_upmap_items (the full candidate pool, after to_skip/only_pools filtering)
M = how many OSDs the deviation_osd loop visits before it breaks (less or equal to underfull count)
U = the number of distinct from OSDs in the upmap items. U is less or equal to number of OSDs, and should be less than R x k
k = mapping pairs per candidate (usually 1, small)

Time complexity of OSDMap::calc_pg_upmaps():
Before the commit: O(M * R)
After the commit: O(R * k + M * log(U)) ~= O(R + M *log(U))

Performant evaluation:
Existing upmap items    Underfull OSDs  Old path        New path        Speedup
50000                   1000            6.51s           0.047s          137x
100000                  1000            12.05s          0.086s          140x
200000                  2000            63.93s          0.281s          227x

Fixes: https://tracker.ceph.com/issues/77563
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
Assisted-by: Codex:GPT-5.5
13 days agoMerge pull request #69517 from sunyuechi/fix-ctest-resource-online-cpus
Kefu Chai [Wed, 24 Jun 2026 06:10:32 +0000 (14:10 +0800)]
Merge pull request #69517 from sunyuechi/fix-ctest-resource-online-cpus

run-make-check.sh: build ctest cpu resource pool from sched_getaffinity

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
13 days agoMerge pull request #69157 from sunyuechi/wip-mds-quiesce-test-evaluate-await-idle
Kefu Chai [Wed, 24 Jun 2026 06:01:41 +0000 (14:01 +0800)]
Merge pull request #69157 from sunyuechi/wip-mds-quiesce-test-evaluate-await-idle

test/mds: don't drop await_idle_v under NDEBUG

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
13 days agoMerge pull request #69162 from sunyuechi/wip-cephadm-tests-mock-find-program-lvcreate
Kefu Chai [Wed, 24 Jun 2026 06:01:00 +0000 (14:01 +0800)]
Merge pull request #69162 from sunyuechi/wip-cephadm-tests-mock-find-program-lvcreate

cephadm/tests: mock find_program in test_container_engine

Reviewed-by: John Mulligan <jmulligan@redhat.com>
13 days agoMerge pull request #68827 from kotreshhr/mirror-metrics-new-mgr-interface
Kotresh HR [Wed, 24 Jun 2026 02:48:37 +0000 (08:18 +0530)]
Merge pull request #68827 from kotreshhr/mirror-metrics-new-mgr-interface

tools/cephfs_mirror: Mirror metrics via  new mgr interface

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2 weeks agoMerge pull request #69664 from tchaikov/wip-asan-options
Kefu Chai [Wed, 24 Jun 2026 00:53:07 +0000 (08:53 +0800)]
Merge pull request #69664 from tchaikov/wip-asan-options

cmake,ceph,qa: update and populate ASan options to ceph cli

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
2 weeks agoMerge pull request #69416 from NitzanMordhai/wip-nitzan-test-osd-recovery-prio-race
Laura Flores [Tue, 23 Jun 2026 21:27:28 +0000 (16:27 -0500)]
Merge pull request #69416 from NitzanMordhai/wip-nitzan-test-osd-recovery-prio-race

osd-recovery-prio: race condition fix in TEST_recovery_pool_priority

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
2 weeks agoMerge pull request #69361 from eameh-LF/wip-doc-77183
eameh-LF [Tue, 23 Jun 2026 16:25:57 +0000 (17:25 +0100)]
Merge pull request #69361 from eameh-LF/wip-doc-77183

doc/rados/configuration: Fix FileStore contradiction in journal-ref.rst

2 weeks agoMerge pull request #69362 from eameh-LF/wip-doc-77184
eameh-LF [Tue, 23 Jun 2026 16:25:34 +0000 (17:25 +0100)]
Merge pull request #69362 from eameh-LF/wip-doc-77184

doc/rados/operations: Strengthen cache-tiering deprecation notice

2 weeks agoMerge pull request #69669 from eameh-LF/wip-doc-77188
eameh-LF [Tue, 23 Jun 2026 16:13:32 +0000 (17:13 +0100)]
Merge pull request #69669 from eameh-LF/wip-doc-77188

doc/cephfs: clarify deprecated commands and remove obsolete upgrade path

2 weeks agoMerge pull request #69676 from tchaikov/wip-revert-asan
Ilya Dryomov [Tue, 23 Jun 2026 16:04:56 +0000 (18:04 +0200)]
Merge pull request #69676 from tchaikov/wip-revert-asan

Revert "script/run-make: enable ASan"

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 weeks agoMerge pull request #69359 from eameh-LF/wip-doc-77192
eameh-LF [Tue, 23 Jun 2026 16:01:20 +0000 (17:01 +0100)]
Merge pull request #69359 from eameh-LF/wip-doc-77192

doc/install: Update EOL version floor references in index.rst

2 weeks agoMerge pull request #69336 from mheler/wip-rgw-sse-gcm-mpu-fix
mheler [Tue, 23 Jun 2026 15:52:28 +0000 (10:52 -0500)]
Merge pull request #69336 from mheler/wip-rgw-sse-gcm-mpu-fix

rgw: fix AES-256-GCM key/IV reuse on multipart part re-upload

2 weeks agoqa/lsan.supp: suppress CPython 3.12/3.13 interpreter leaks 69664/head
Kefu Chai [Tue, 23 Jun 2026 08:14:19 +0000 (16:14 +0800)]
qa/lsan.supp: suppress CPython 3.12/3.13 interpreter leaks

The python binaries on some CI images and dev boxes ship stripped, so the
allocator frames in an interpreter-shutdown leak come through unsymbolised
(/usr/bin/python3.13+0x...) and the function-name matches above cannot apply.
leak:python3.10 already handled this for 3.10, and a stale comment claimed 3.12
does not leak.

Add leak:python3.12 and leak:python3.13, mirroring the 3.10 entry, so the
interpreter globals are suppressed whatever CPython the build uses.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoceph.in: load asan/lsan suppressions on WITH_ASAN builds
Kefu Chai [Tue, 23 Jun 2026 08:14:19 +0000 (16:14 +0800)]
ceph.in: load asan/lsan suppressions on WITH_ASAN builds

bin/ceph from a WITH_ASAN build aborts at exit, with LeakSanitizer reporting
CPython and Cython module-init allocations as leaks:

  ==2577940==ERROR: LeakSanitizer: detected memory leaks
  Direct leak ... in PyObject_Malloc (/usr/bin/python3.12+...)
    #4 __pyx_pymod_exec_rados rados_processed.c
  SUMMARY: AddressSanitizer: 32113 byte(s) leaked in 30 allocation(s).

These are interpreter globals that live for the process lifetime.  qa/lsan.supp
already suppresses them, but bin/ceph never loaded it: vstart.sh sets
LSAN_OPTIONS for the daemons it spawns, while a bin/ceph invoked separately
(ceph-api runs ./bin/ceph fsid once vstart.sh returns) inherits none and exits
non-zero.  It stayed hidden until radosgw-admin stopped crashing in vstart and
the run reached that call.

ceph.in already re-execs with the ASan runtime preloaded under WITH_ASAN.  Set
ASAN_OPTIONS and LSAN_OPTIONS first, from the CEPH_ASAN_OPTIONS and
CEPH_LSAN_OPTIONS that CMake also feeds add_ceph_test(), so the re-exec'd
interpreter starts with the suppressions loaded.  Use setdefault so a value
from the caller still wins.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agocmake: factor the ASan/LSan test options into cache variables
Kefu Chai [Tue, 23 Jun 2026 08:14:19 +0000 (16:14 +0800)]
cmake: factor the ASan/LSan test options into cache variables

add_ceph_test() spelled out the suppression-file paths and sanitizer flags
inline.  bin/ceph needs the same options, so lift them into CEPH_ASAN_OPTIONS
and CEPH_LSAN_OPTIONS and have add_ceph_test() consume those.  The environment
the tests run with is unchanged.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoMerge pull request #69681 from djgalloway/fix-backport-workflow
David Galloway [Tue, 23 Jun 2026 14:33:48 +0000 (10:33 -0400)]
Merge pull request #69681 from djgalloway/fix-backport-workflow

.github/workflows/releng-audit.yaml: Check main for upstream commit

2 weeks ago.github/workflows/releng-audit.yaml: Check main for upstream commit 69681/head
David Galloway [Tue, 23 Jun 2026 14:11:34 +0000 (10:11 -0400)]
.github/workflows/releng-audit.yaml: Check main for upstream commit

This check was failing to correctly identify whether backported commits
had actually been cherry-picked because it was checking the target branch
instead of the main branch.  This change checks out the main branch
to look for the upstream cherry-picked commit.

Signed-off-by: David Galloway <david.galloway@ibm.com>
2 weeks agoMerge pull request #69632 from gbregman/main
Gil Bregman [Tue, 23 Jun 2026 13:24:36 +0000 (16:24 +0300)]
Merge pull request #69632 from gbregman/main

mgr/cephadm: Add degraded namespace flag to NVMEoF spec file

2 weeks agoMerge pull request #69175 from cbodley/wip-qa-rgw-multisite-gcm
mheler [Tue, 23 Jun 2026 13:17:59 +0000 (08:17 -0500)]
Merge pull request #69175 from cbodley/wip-qa-rgw-multisite-gcm

2 weeks agoMerge pull request #68482 from chrisphoffman/wip-73347
Venky Shankar [Tue, 23 Jun 2026 13:04:39 +0000 (18:34 +0530)]
Merge pull request #68482 from chrisphoffman/wip-73347

qa: Add direct_io test for fscrypt

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2 weeks agoqa: Add mgr snapshot mirror status tests 68827/head
Kotresh HR [Tue, 23 Jun 2026 15:13:18 +0000 (20:43 +0530)]
qa: Add mgr snapshot mirror status tests

Add teuthology coverage for `ceph fs snapshot mirror status`:
parity with asok peer_status, default idle metrics, stale omap
handling, error paths, filter scopes, daemon restart, and cache TTL.

Reuse existing peer_dir_status and metrics assertion helpers.
Adjust stale test wait for InstanceWatcher timeout and set a
short cache TTL in the cache test. Pass peer_uuid via --peer_uuid=
in the test helper for peer-only scope queries.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agodoc/cephfs: Document fs snapshot mirror status mgr command
Kotresh HR [Sun, 21 Jun 2026 17:59:43 +0000 (23:29 +0530)]
doc/cephfs: Document fs snapshot mirror status mgr command

Describe the mirroring module command that reads persisted omap
metrics, including syntax, output layout, stale detection, caching,
and comparison with the admin socket peer status interface.

Document --peer_uuid as a named argument for peer-only and
directory/peer filtering.

Also update PendingReleaseNotes

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: make snapshot mirror metrics cache optional
Kotresh HR [Sun, 21 Jun 2026 17:52:29 +0000 (23:22 +0530)]
mgr/mirroring: make snapshot mirror metrics cache optional

Add snapshot_mirror_metrics_cache_enabled (default true). When disabled,
metrics_status reads omap directly and skips complete and partial caches.
When enabled, behavior is unchanged.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: make snapshot mirror metrics cache TTL configurable
Kotresh HR [Sun, 21 Jun 2026 17:50:28 +0000 (23:20 +0530)]
mgr/mirroring: make snapshot mirror metrics cache TTL configurable

Add snapshot_mirror_metrics_cache_ttl as a runtime mgr/mirroring module
option (default 15 seconds) instead of a hard-coded CACHE_TTL_SECS.
Both complete and partial lru_cache_timeout wrappers read the value
when caching omap metrics so operators can tune cache freshness without
code changes.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: handle missing cephfs_mirror object in metrics status
Kotresh HR [Sun, 21 Jun 2026 17:48:15 +0000 (23:18 +0530)]
mgr/mirroring: handle missing cephfs_mirror object in metrics status

When snapshot mirroring is not enabled for a filesystem, the
cephfs_mirror RADOS object does not exist and "ceph fs snapshot mirror
status" fails reading sync stat omap. Map rados ENOENT to a clear
MirrorException so the CLI reports that snapshot mirroring must be
enabled instead of a generic omap read failure or an uncaught exception.

Also catch unexpected errors in metrics_status like other mirror CLI
handlers, so the mgr module does not crash on failure. Return
-errno.EINVAL from the generic error path instead of the exception
message as exit code.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: Show default stats on newly added dir_root
Kotresh HR [Sun, 21 Jun 2026 17:35:30 +0000 (23:05 +0530)]
mgr/mirroring: Show default stats on newly added dir_root

When the directory is added for mirroring and the snapshot
is not taken yet, the peer_status show the following default
metrics.

{
  'state': 'idle',
  'snaps_synced': 0,
  'snaps_deleted': 0,
  'snaps_renamed': 0,
}

The mgr interface should also match that.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: detect stale snapshot mirror sync metrics in omap
Kotresh HR [Sun, 21 Jun 2026 17:28:38 +0000 (22:58 +0530)]
mgr/mirroring: detect stale snapshot mirror sync metrics in omap

Persisted metrics in the cephfs_mirror omap can outlive the writing
daemon when cephfs-mirror stops or a directory is reshuffled to another
instance; mgr would keep reporting stale progress until the owning
daemon writes again.

Extend format_and_order_sync_stat_for_display() to compare persisted
_instance_id against InstanceWatcher live instances (via
FSPolicy.get_live_instance_ids()) and the directory's tracked instance
(via Policy.get_tracked_instance_id()). Mark metrics stale when the
persisted writer is no longer live (any state), or when it does not
match the tracked instance while persisted state is not "idle". Show
state "stale" with current_syncing_snap omitted.

Pass policy and live instance ids through load_sync_stat_metrics() and
fetch_sync_stat_metrics(), and into sync_stat_complete_cache and
sync_stat_partial_cache loaders. Cache hits serve already-formatted
(stale-marked) entries until TTL expiry without re-checking instance
liveness.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: cache fs snapshot mirror status omap metrics
Kotresh HR [Tue, 16 Jun 2026 10:42:41 +0000 (16:12 +0530)]
mgr/mirroring: cache fs snapshot mirror status omap metrics

Add a short-lived in-memory cache for metrics returned by
"ceph fs snapshot mirror status", which reads persisted sync stats
from the cephfs_mirror object omap. Omap walks are relatively
expensive; caching reduces repeated reads when the CLI or multiple
clients poll at short intervals.

Two TTL-bucketed LRU caches (CACHE_TTL_SECS) are used instead of one
unified cache. The complete cache always holds every mirrored
directory and peer for a filesystem; the partial cache holds one
directory. A single directory-granularity cache cannot prove it has
all directories, so full-scan queries rely on the complete cache
contract.

Cache implementation (lru_cache_timeout decorator backed by
_TimedLRUCache, not functools.lru_cache):

- lru_cache has no TTL and no peek-on-hit API. Single-directory
  queries must read the complete cache without loading on miss;
  lru_cache.cache is also unavailable on Python 3.14+.

- complete (sync_stat_complete_cache): full omap prefix scan via
  load_sync_stat_metrics. Cache key: (time_token, filesystem).
  COMPLETE_CACHE_MAX limits filesystem entries per TTL window.

- partial (sync_stat_partial_cache): per-directory omap key load via
  fetch_sync_stat_metrics. Cache key: (time_token, filesystem,
  dir_path, peer_ids). PARTIAL_CACHE_MAX limits directory entries.

Bind cache_peek/cache_info/cache_clear via a CachedMethod descriptor
so TTL lookups receive (self, ...); otherwise single-dir status fails
with 'str' object has no attribute 'mgr'.

Serve logic (under the existing lock):

- status <fs> [--peer_uuid=<uuid>]: load complete cache on miss;
  filter by peer when requested.

- status <fs> <dir>: peek complete cache (no load on miss); if the
  entry contains the directory and peers, serve from complete.
  Otherwise load partial cache (omap on miss).

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: Reorder and format metrics output
Kotresh HR [Mon, 1 Jun 2026 09:29:31 +0000 (14:59 +0530)]
mgr/mirroring: Reorder and format metrics output

Reorder and format status output to match the output of asok
interface peer_status command. Return metrics under
metrics/<dir>/peer/<uuid> to match the asok peer_status layout,
including {"metrics": {}} when no peers are configured.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agomgr/mirroring: Add new interface to expose mirroring metrics
Kotresh HR [Wed, 29 Apr 2026 09:19:15 +0000 (14:49 +0530)]
mgr/mirroring: Add new interface to expose mirroring metrics

Add the following new interface to expose mirroring metrics

ceph fs snapshot mirror status <fsname> [<mirrored_dir_path>] [--peer_uuid=<peer_uuid>]

The cmd loads the persisted directory sync metrics from the
cephfs_mirror object's omap. Metrics are grouped by mirrored
directory and peer.

When --peer_uuid is specified, only metrics for that peer are
returned. peer_uuid is a named CLI argument (_end_positional_) so
peer-only filtering does not require a mirrored directory path.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agotools/cephfs_mirror: Remove persisted dir stats
Kotresh HR [Sat, 20 Jun 2026 07:58:56 +0000 (13:28 +0530)]
tools/cephfs_mirror: Remove persisted dir stats

When a directory is removed from mirroring, the persisted directory
stats need to be removed.  This patch handles the cleanup.

Omap keys must not be removed when mirrored directories are reshuffled
across cephfs-mirror daemons.  The mgr release notify now carries a
purging flag (set only during permanent removal, not reshuffle), and
the daemon removes persisted stats only when purging is true.  On
reshuffle with an in-progress sync, clear live current_syncing_snap
state and persist idle metrics so the acquiring daemon does not inherit
stale syncing omap entries.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agotools/cephfs_mirror: Load persisted mirror metrics from omap
Kotresh HR [Sat, 20 Jun 2026 06:21:42 +0000 (11:51 +0530)]
tools/cephfs_mirror: Load persisted mirror metrics from omap

Load last_synced_snap metadata from the cephfs_mirror object omap on
PeerReplayer initialization and when a mirrored directory is added.
Live current_syncing_snap metrics are not restored; they are rebuilt
when synchronization starts.

When the daemon restarts after a snapshot was synced on the remote but
metrics were not yet written to omap, loaded metadata may belong to an
older snapshot.  Add reconcile_last_synced_snap() to compare against
the remote snap map, clear stale last-sync fields, and update
last_synced_snap id/name in memory.

Treat snaps_synced, snaps_deleted, and snaps_renamed as per-session
counters.  Do not load them from omap; they start at zero for each
daemon session and are still reported via the admin socket.  Persist
omap metrics unconditionally after reconcile so the mgr picks up the
new instance id and cleared session counters on restart.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agotools/cephfs_mirror: Persist metrics to omap
Kotresh HR [Sat, 20 Jun 2026 05:33:49 +0000 (11:03 +0530)]
tools/cephfs_mirror: Persist metrics to omap

Persist snapshot mirroring metrics to the cephfs_mirror object omap
for the mgr/mirroring module to support status command.

The tick thread only keeps omap up to date for in-progress syncs on
registered directories. Persist explicitly when stats change so omap
is updated before a directory unregisters:

 - snap delete/rename propagation (inc_deleted_snap / inc_renamed_snap)
 - after each successful snap sync (following set_last_synced_stat)
 - after sync_snaps failure (following _inc_failed_count)
 - after sync_perms failure (following _inc_failed_count)

Without the explicit call sites, omap can keep stale live or idle state
after sync completes or fails because directories leave m_registered
before the next tick.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agotools/cephfs_mirror: Adds capability to persist metrics
Kotresh HR [Sun, 17 May 2026 21:01:58 +0000 (02:31 +0530)]
tools/cephfs_mirror: Adds capability to persist metrics

Adds the capability to persist mirroring metrics.
The metrics are persisted in the omap of the cephfs-mirror
object. Metrics are persisted asynchronously.

Each mirrored directory path stores the corresponding
metrics as the value of a unique omap key representing
the mirrored directory. The omap key is as below.

sync_stat/<fsname>/<peer_uuid>/<mirrored_dir_path>

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2 weeks agoRevert "script/run-make: enable ASan" 69676/head
Kefu Chai [Tue, 23 Jun 2026 12:14:10 +0000 (20:14 +0800)]
Revert "script/run-make: enable ASan"

in 8ac962c6, we enabled ASan in script/run-make, which is part of
our CI workflow to build the tree. The goal was to enable us to identify
memory related issues early, but this introduced two kinds of problems:

- it's observed that some tests take around 4x time to complete in
  comparison to the test time without ASan enabled
- api and dashboard e2e tests are failing because the ASan supppression
  rules are not populated to them

This reverts commit 8ac962c698df959da1866d41b04d69c806bb72c0.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agorgw: restore constant-time GCM tag comparison in ISA-L path 69336/head
Matthew N. Heler [Tue, 9 Jun 2026 02:13:50 +0000 (21:13 -0500)]
rgw: restore constant-time GCM tag comparison in ISA-L path

a8ed43bfc05 replaced ct_memeq with memcmp in the ISA-L GCM accelerator,
making tag verification and the key-cache compare non-constant-time.
Restore ct_memeq for both; the OpenSSL and EVP paths already compare in
constant time.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
2 weeks agorgw: fix AES-256-GCM key/IV reuse on multipart part re-upload
Matthew Heler [Fri, 5 Jun 2026 15:48:32 +0000 (10:48 -0500)]
rgw: fix AES-256-GCM key/IV reuse on multipart part re-upload

Re-uploading the same part number in a GCM multipart upload encrypted the new
data under the same key and IV as the first upload, since the IV is
part_number||chunk_index and the part key came from the part number alone. GCM
requires a unique IV per key; reusing one to encrypt different data weakens its
confidentiality and integrity guarantees.

Generate a random 16-byte salt on each UploadPart and fold it into the part key,
HMAC(ObjectKey, BE32(part) || salt), so every upload gets a fresh key. The salt
rides RGWUploadPartInfo, and complete stores the selected part's salt in
RGW_ATTR_CRYPT_PART_NUMS, which now holds (part, salt) pairs. GET reads it back
to re-derive the key, and an empty salt reproduces the old derivation so unsalted
parts still decrypt.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
2 weeks agomgr/cephadm: Add degraded namespace flag to NVMEoF spec file 69632/head
Gil Bregman [Mon, 22 Jun 2026 09:06:00 +0000 (12:06 +0300)]
mgr/cephadm: Add degraded namespace flag to NVMEoF spec file
Fixes: https://tracker.ceph.com/issues/77556
Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
2 weeks agodoc/cephfs: clarify deprecated commands and remove obsolete upgrade path 69669/head
Emmanuel Ameh [Tue, 23 Jun 2026 10:23:14 +0000 (11:23 +0100)]
doc/cephfs: clarify deprecated commands and remove obsolete upgrade path

Several CephFS pages described deprecated commands and features without
clear status or replacements, and one page documented an upgrade path that
predates every supported release.

* cephfs-mirroring: correct the peer_add deprecation note to reference the
  actual replacement command, peer_bootstrap create, and link the Bootstrap
  Peers section
* kernel-features, experimental-features: state that inline data has been
  deprecated since the Octopus release and that enabling it triggers a
  health warning
* upgrading: remove the "Upgrading pre-Firefly file systems past Jewel"
  section; the tmap_upgrade command it referenced was removed in Kraken

Fixes: https://tracker.ceph.com/issues/77188
Signed-off-by: Emmanuel Ameh <eameh@contractor.linuxfoundation.org>
2 weeks agoMerge pull request #69659 from tchaikov/wip-dashboard-prettytable
Ilya Dryomov [Tue, 23 Jun 2026 10:12:38 +0000 (12:12 +0200)]
Merge pull request #69659 from tchaikov/wip-dashboard-prettytable

mgr/dashboard: skip the table when an nvmeof cli result has no columns

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Tomer Haskalovitch <tomer.haska@ibm.com>
2 weeks agodoc/rados/operations: refine cache-tiering deprecation note per review 69362/head
Emmanuel Ameh [Tue, 23 Jun 2026 09:34:33 +0000 (10:34 +0100)]
doc/rados/operations: refine cache-tiering deprecation note per review

Reduce the note to point existing users to the removal procedure, add a
ref target for the removal section, and rephrase the dm-cache mention to
reflect community adoption without implying official endorsement.

2 weeks agodoc/install: restore cephadm Octopus version floor note 69359/head
Emmanuel Ameh [Tue, 23 Jun 2026 09:18:29 +0000 (10:18 +0100)]
doc/install: restore cephadm Octopus version floor note

Reverts the removal of the minimum version bullet per review feedback.
The Rook version line and ceph-ansible block removals are kept as-is.

2 weeks agoMerge pull request #69357 from eameh-LF/wip-doc-77197
eameh-LF [Tue, 23 Jun 2026 09:05:43 +0000 (10:05 +0100)]
Merge pull request #69357 from eameh-LF/wip-doc-77197

doc/install: Update mirrors.rst to use https and current release

2 weeks agomgr/dashboard: skip the table when an nvmeof cli result has no columns 69659/head
Kefu Chai [Tue, 23 Jun 2026 07:43:28 +0000 (15:43 +0800)]
mgr/dashboard: skip the table when an nvmeof cli result has no columns

The dashboard leaves prettytable unpinned.  prettytable commit 2574492 ("Apply
some Pylint rules (PLR)", #436) rewrote _stringify_row()'s row_height as
`max(_get_size(c)[1] for c in row)`, which raises ValueError("max() iterable
argument is empty") on a row with no cells.  The change is undocumented and
shipped in 3.18.0; get_string() trips on it when a table has a row but no
columns.

AnnotatedDataTextOutputFormatter builds such a table for an empty result, or
one whose only field is status or error_message, so NvmeofCLICommand.call()
returns -EINVAL and the command fails.  This broke run-tox-mgr-dashboard-py3
once the tox virtualenv picked up prettytable 3.18.0.

Return an empty string when there are no columns instead of formatting a
degenerate table.

Fixes: https://tracker.ceph.com/issues/77589
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoMerge pull request #68194 from adamemerson/wip-rgw-multi-reshard-generation-recovery
anrao19 [Tue, 23 Jun 2026 05:13:45 +0000 (10:43 +0530)]
Merge pull request #68194 from adamemerson/wip-rgw-multi-reshard-generation-recovery

rgw/multi: Recover from future generation sync

2 weeks agoMerge pull request #69344 from knrt10/ceph-perf-pr
Kautilya Tripathi [Tue, 23 Jun 2026 05:00:10 +0000 (10:30 +0530)]
Merge pull request #69344 from knrt10/ceph-perf-pr

crimson/cbt: use yaml.safe_load in t2c and add unit tests

2 weeks agoMerge pull request #69596 from tchaikov/wip-rocksdb
Kefu Chai [Tue, 23 Jun 2026 00:14:08 +0000 (08:14 +0800)]
Merge pull request #69596 from tchaikov/wip-rocksdb

rocksdb: update submodule to fix FTBFS due to missing <cstdint>

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge pull request #69629 from tchaikov/wip-doc-min-compat
Kefu Chai [Tue, 23 Jun 2026 00:11:40 +0000 (08:11 +0800)]
Merge pull request #69629 from tchaikov/wip-doc-min-compat

doc/rados/operations: document the kernel-client min-compat holdout

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2 weeks agoMerge pull request #69622 from sunyuechi/boost
Kefu Chai [Mon, 22 Jun 2026 23:52:23 +0000 (07:52 +0800)]
Merge pull request #69622 from sunyuechi/boost

cmake: define BOOST_USE_UCONTEXT tree-wide under ASan

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge pull request #69641 from ceph/ljflores-patch-1
Ilya Dryomov [Mon, 22 Jun 2026 16:58:47 +0000 (18:58 +0200)]
Merge pull request #69641 from ceph/ljflores-patch-1

doc: update email address for Laura Flores

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Dan van der Ster <dan.vanderster@clyso.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge pull request #69621 from sunyuechi/wip-asan-ci-rebase
Kefu Chai [Mon, 22 Jun 2026 15:25:36 +0000 (23:25 +0800)]
Merge pull request #69621 from sunyuechi/wip-asan-ci-rebase

build,test: fix issues surfaced by tests after enabling ASan

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agodoc: update email address for Laura Flores 69641/head
Laura Flores [Mon, 22 Jun 2026 15:18:50 +0000 (10:18 -0500)]
doc: update email address for Laura Flores

Changed Red Hat email to IBM.

Signed-off-by: Laura Flores <lflores@ibm.com>
2 weeks agoMerge pull request #69190 from RaminNietzsche/fix/rgw-cors-aws-rule-matching
Ali Masarwa [Mon, 22 Jun 2026 14:16:25 +0000 (17:16 +0300)]
Merge pull request #69190 from RaminNietzsche/fix/rgw-cors-aws-rule-matching

RGW: match CORS rules like Amazon S3

reviewed-by: Ali Masarwa <amasarwa@redhat.com>

2 weeks agoMerge pull request #68713 from nhoad/remove-dead-gc-code
Nathan Hoad [Mon, 22 Jun 2026 14:00:11 +0000 (10:00 -0400)]
Merge pull request #68713 from nhoad/remove-dead-gc-code

rgw: Remove GC deferred entries options and code

2 weeks agoMerge pull request #69601 from sunyuechi/wip-test-gtest-parallel-cache
Kefu Chai [Mon, 22 Jun 2026 10:54:32 +0000 (18:54 +0800)]
Merge pull request #69601 from sunyuechi/wip-test-gtest-parallel-cache

cmake: make GTEST_PARALLEL_COMMAND visible to all test directories

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoMerge pull request #69556 from VallariAg/refresh-network-cli
Vallari Agrawal [Mon, 22 Jun 2026 10:08:40 +0000 (15:38 +0530)]
Merge pull request #69556 from VallariAg/refresh-network-cli

mgr/dashboard: Add "gw refresh_network" cmd

2 weeks agoMerge pull request #69396 from rhcs-dashboard/77298-fixing-EC-profile-creation-scroll copilot/research-boost-context-issue
Afreen Misbah [Mon, 22 Jun 2026 09:18:51 +0000 (14:48 +0530)]
Merge pull request #69396 from rhcs-dashboard/77298-fixing-EC-profile-creation-scroll

mgr/dashboard: Fix for EC profile creation modal scrollbar

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Abhishek Desai <abhishek.desai1@ibm.com>
2 weeks agoMerge pull request #69161 from sunyuechi/wip-librbd-pwl-cancel-timer-before-perf...
Ilya Dryomov [Mon, 22 Jun 2026 08:11:59 +0000 (10:11 +0200)]
Merge pull request #69161 from sunyuechi/wip-librbd-pwl-cancel-timer-before-perf-stop

librbd/cache/pwl: cancel periodic_stats timer before perf_stop()

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 weeks agodoc/rados/operations: document the kernel-client min-compat holdout 69629/head
Kefu Chai [Mon, 22 Jun 2026 07:25:18 +0000 (15:25 +0800)]
doc/rados/operations: document the kernel-client min-compat holdout

A kernel CephFS or RBD mount can keep ``set-require-min-compat-client
reef`` from succeeding: the kernel client does not advertise the
pg-upmap-primary feature, so ``ceph features`` reports it as a luminous
client even when the daemons and every userspace client are newer.
ceph-fuse, libcephfs, and librbd advertise the full feature set and are
not affected.

Document this, and add a section on finding the holdout with
``ceph features`` and switching it to a userspace client.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoqa/lsan.supp: suppress seastore reactor-teardown leaks 69621/head
Sun Yuechi [Mon, 22 Jun 2026 06:52:57 +0000 (14:52 +0800)]
qa/lsan.supp: suppress seastore reactor-teardown leaks

unittest-seastore runs the seastar reactor on a separate thread
(SeastarRunner) and stops it at exit without draining its pending
tasks, so a few cached extents those tasks still held are leaked at
shutdown. Suppress them by the three seastore subsystems they come from.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agoqa/lsan.supp: suppress still-reachable third-party leaks
Sun Yuechi [Mon, 22 Jun 2026 06:52:22 +0000 (14:52 +0800)]
qa/lsan.supp: suppress still-reachable third-party leaks

Several unittests fail LeakSanitizer on still-reachable allocations that
belong to third-party libraries, not to Ceph. These are boost.thread's
main-thread TLS, OpenSSL's one-time init (the ForkDeathTest children
_exit() before it is freed), and the cipher, DRBG and error-stack state
that OpenSSL and libcryptsetup keep behind the librbd encryption and
migration unittests. None get freed without OPENSSL_cleanup(), so suppress
them by their allocation entry points.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agovstart: load lsan/asan suppressions on WITH_ASAN builds
Sun Yuechi [Sun, 21 Jun 2026 08:42:54 +0000 (16:42 +0800)]
vstart: load lsan/asan suppressions on WITH_ASAN builds

AddCephTest.cmake runs unittests with
ASAN_OPTIONS/LSAN_OPTIONS=suppressions=qa/{asan,lsan}.supp, but vstart.sh
does not, so on a WITH_ASAN build `ceph-mon --mkfs` aborts on a still-reachable
leak that those suppressions cover and fails the "ceph API tests" job. Export
the same options when WITH_ASAN=ON.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agocmake: define BOOST_USE_UCONTEXT tree-wide under ASan 69622/head
Sun Yuechi [Sat, 20 Jun 2026 07:17:26 +0000 (15:17 +0800)]
cmake: define BOOST_USE_UCONTEXT tree-wide under ASan

Under WITH_ASAN Boost.Context is built ucontext-only, so consumers that
include its headers without linking Boost::context (e.g. libosd) were
still built for the fcontext backend and broke the link:

    mold: error: undefined symbol: boost::context::detail::make_fcontext

Define the backend tree-wide so every consumer agrees on it.

riscv64's ASan runtime mis-handles makecontext/swapcontext, so the
ucontext fiber backend reports false-positive heap-buffer-overflows on
fiber switch that can't be suppressed. So exclude it.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agoMerge pull request #69611 from sunyuechi/wip-boost-asan-context-impl-feature
Kefu Chai [Mon, 22 Jun 2026 05:24:08 +0000 (13:24 +0800)]
Merge pull request #69611 from sunyuechi/wip-boost-asan-context-impl-feature

cmake/boost: load context Jamfile before passing context-impl to b2

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agotest/encoding: probe `setarch -R` and drop the arch argument
Sun Yuechi [Sun, 21 Jun 2026 08:42:54 +0000 (16:42 +0800)]
test/encoding: probe `setarch -R` and drop the arch argument

readable.sh wraps ceph-dencoder with `setarch $(uname -m) -R` to disable
ASLR on ASan builds, but the arch-qualified form also sets the personality
to that arch, which fails where setarch can't (e.g. riscv64). Use bare
`setarch -R` to only clear ASLR, and probe it first so the script falls
back to running ceph-dencoder unwrapped.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agocrimson: build seastar with the default allocator under ASan
Sun Yuechi [Sun, 21 Jun 2026 08:42:54 +0000 (16:42 +0800)]
crimson: build seastar with the default allocator under ASan

With this build configured as RelWithDebInfo, seastar keeps its own
allocator instead of falling back to libc's. Under ASan that allocator
is called (via dlsym) before it is initialized and SIGSEGVs every
seastar/crimson unittest before main(). Define SEASTAR_DEFAULT_ALLOCATOR
under WITH_ASAN to keep seastar on the libc allocator.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agocmake: use the libc allocator for sanitizer builds
Sun Yuechi [Sun, 21 Jun 2026 16:14:55 +0000 (00:14 +0800)]
cmake: use the libc allocator for sanitizer builds

tcmalloc/jemalloc keep exporting the global operator new/delete even though
their malloc is shadowed by the sanitizer interceptor, so memory the sanitizer
allocated gets freed through tcmalloc and SIGSEGVs (e.g. seastar coroutine
frames). Force libc when WITH_ASAN is set.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agoMerge pull request #69577 from tchaikov/wip-debian-copyright
Kefu Chai [Sun, 21 Jun 2026 12:50:22 +0000 (20:50 +0800)]
Merge pull request #69577 from tchaikov/wip-debian-copyright

debian/copyright: silence old-fsf-address-in-copyright-file

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge pull request #69579 from tchaikov/wip-build-no-ci-in-package
Kefu Chai [Sun, 21 Jun 2026 07:25:09 +0000 (15:25 +0800)]
Merge pull request #69579 from tchaikov/wip-build-no-ci-in-package

debian,rpm: exclude CI directories from mgr plugin packages

Reviewed-by: John Mulligan <jmulligan@redhat.com>
2 weeks agoMerge pull request #69316 from sunyuechi/wip-tests-venv-system-site-packages
Kefu Chai [Sat, 20 Jun 2026 23:14:12 +0000 (07:14 +0800)]
Merge pull request #69316 from sunyuechi/wip-tests-venv-system-site-packages

test: optionally run test venvs with system site-packages

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoMerge pull request #69600 from anthonyeleven/improve-onode
Anthony D'Atri [Sat, 20 Jun 2026 11:54:48 +0000 (07:54 -0400)]
Merge pull request #69600 from anthonyeleven/improve-onode

doc/rados/bluestore: Improve fast-onode-scan.rst

2 weeks agocmake/boost: load context Jamfile before passing context-impl to b2 69611/head
Sun Yuechi [Sat, 20 Jun 2026 02:53:51 +0000 (10:53 +0800)]
cmake/boost: load context Jamfile before passing context-impl to b2

With WITH_ASAN, b2 runs as `b2 context-impl=ucontext headers stage` for the
build step and `b2 context-impl=ucontext install` for the install step. The
`context-impl` feature is declared in libs/context/build/Jamfile.v2, which
neither the headers/stage nor the install targets load, so b2 aborts with:

    error: unknown feature "<context-impl>"

Name the context project as a target in both commands so its Jamfile (and the
feature) loads before the build request is expanded.

This works around https://github.com/boostorg/context/issues/297, fixed
upstream in
https://github.com/boostorg/context/commit/12ac945158ae3c2373ec0c888899373218aa209f
and first released in Boost 1.88; drop it once the bundled Boost is bumped to
1.88 or newer.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agotest/cmake: drop dead env_vars_for_tox_tests set_property 69316/head
Sun Yuechi [Sat, 20 Jun 2026 05:51:39 +0000 (13:51 +0800)]
test/cmake: drop dead env_vars_for_tox_tests set_property

Both `tox_tests` and `env_vars_for_tox_tests` have been undefined since
f0079a1030b, so this expands to `set_property(TEST PROPERTY ENVIRONMENT)`
-- a no-op. The actual per-test environment for tox tests is set in
add_tox_test() (cmake/modules/AddCephTest.cmake). Remove the leftover.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agomypy: skip follow_imports for prettytable
Sun Yuechi [Sun, 7 Jun 2026 14:19:08 +0000 (22:19 +0800)]
mypy: skip follow_imports for prettytable

With test venvs on system site-packages, mypy picks up the system
prettytable (3.4.0+, typed). It flags mgr's add_row(tuple) against the
list[Any] signature (src/mypy.ini) and qa's float_format = str against
the dict[str, str] property (qa/mypy.ini). Skip follow_imports in both.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agotest: optionally run test venvs with system site-packages
Sun Yuechi [Sat, 6 Jun 2026 18:05:34 +0000 (02:05 +0800)]
test: optionally run test venvs with system site-packages

Add a CEPH_PYTHON_SYSTEM_SITE switch (off by default). When set:

  - setup-virtualenv.sh builds its venv with --system-site-packages;
  - run_tox.sh exports VIRTUALENV_SYSTEM_SITE_PACKAGES=true for tox's venvs.

This lets distro packages satisfy test dependencies instead of pip building
them from sdist, which helps where prebuilt wheels are missing (e.g. scipy and
numpy on riscv64) by avoiding a slow rebuild when the RPMs are installed.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agoMerge pull request #69603 from sunyuechi/wip-mgr-tox-pytest-xdist
Kefu Chai [Sat, 20 Jun 2026 04:37:34 +0000 (12:37 +0800)]
Merge pull request #69603 from sunyuechi/wip-mgr-tox-pytest-xdist

mgr/tox: run pytest in parallel

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoMerge pull request #69458 from ronen-fr/wip-rf-inc1406-crimson
Ronen Friedman [Sat, 20 Jun 2026 04:03:12 +0000 (07:03 +0300)]
Merge pull request #69458 from ronen-fr/wip-rf-inc1406-crimson

crimson,crimson/test: clean-up 'unused' warnings

Reviewed-by: Shraddha Agrawal <shraddhaag@ibm.com>
2 weeks agoMerge pull request #56537 from tchaikov/wip-cmake-enable-sanitizers 66135/head
Kefu Chai [Sat, 20 Jun 2026 01:24:42 +0000 (09:24 +0800)]
Merge pull request #56537 from tchaikov/wip-cmake-enable-sanitizers

script/run-make: enable ASan

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
2 weeks agodoc/rados/bluestore: Improve fast-onode-scan.rst 69600/head
Anthony D'Atri [Fri, 19 Jun 2026 14:47:15 +0000 (10:47 -0400)]
doc/rados/bluestore: Improve fast-onode-scan.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2 weeks agocmake: make GTEST_PARALLEL_COMMAND visible to all test directories 69601/head
Sun Yuechi [Fri, 19 Jun 2026 06:38:10 +0000 (14:38 +0800)]
cmake: make GTEST_PARALLEL_COMMAND visible to all test directories

GTEST_PARALLEL_COMMAND was set as an ordinary variable inside the
`if(NOT TARGET gtest-parallel_ext)` guard, so it only existed in the
first directory that include()s AddCephTest (src/common/options). Later
includes skip the guarded block and leave it empty, so PARALLEL
unittests under src/test silently ran serially.

Promote it to CACHE INTERNAL so it is visible across all directories
regardless of include order.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agomgr/tox: run pytest in parallel 69603/head
Sun Yuechi [Thu, 18 Jun 2026 19:06:06 +0000 (03:06 +0800)]
mgr/tox: run pytest in parallel

The py3 and coverage tox environments run the full mgr pytest suite
serially, which makes run-tox-mgr the longest test in CI. Add
pytest-xdist and pass `-n auto` to both so the suite is distributed
across the available CPUs.

pytest-xdist is constrained to <2 to stay compatible with the pinned
pytest-cov. Running in parallel also surfaced a hard-coded port in
cephadm's test_node_proxy, which now allocates an ephemeral port per
process.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2 weeks agoMerge pull request #69134 from cbodley/wip-rgw-multi-delete-op_ret
Casey Bodley [Fri, 19 Jun 2026 13:21:10 +0000 (09:21 -0400)]
Merge pull request #69134 from cbodley/wip-rgw-multi-delete-op_ret

rgw: use local error code in handle_individual_object()

Reviewed-by: Shilpa Jagannath <smanjara@redhat.com>
Reviewed-by: Mark Kogan <mkogan@redhat.com>
2 weeks agoMerge pull request #68840 from rapanigrahi/certmgr_smb
John Mulligan [Fri, 19 Jun 2026 12:50:37 +0000 (08:50 -0400)]
Merge pull request #68840 from rapanigrahi/certmgr_smb

mgr/cephadm: Support cephadm certmgr with SMB/TLS configuration

Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
2 weeks agorocksdb: update submodule to fix FTBFS due to missing <cstdint> 69596/head
Kefu Chai [Fri, 19 Jun 2026 11:20:09 +0000 (19:20 +0800)]
rocksdb: update submodule to fix FTBFS due to missing <cstdint>

59afb3d6 bumped rocksdb submodule in hope to address the FTBFS failure
when building rocksdb with GCC 16, but the tree still failed to build:

```
In file included from /ceph/src/rocksdb/include/rocksdb/trace_record_result.h:14,
                 from /ceph/src/rocksdb/trace_replay/trace_record_result.cc:6:
/ceph/src/rocksdb/include/rocksdb/trace_record.h:55:32: error: expected ')' before 'timestamp'
   55 |   explicit TraceRecord(uint64_t timestamp);
      |                       ~        ^~~~~~~~~~
      |                                )
/ceph/src/rocksdb/include/rocksdb/trace_record.h:63:11: error: 'uint64_t' does not name a type
   63 |   virtual uint64_t GetTimestamp() const;
      |           ^~~~~~~~
/ceph/src/rocksdb/include/rocksdb/trace_record.h:1:1: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
```

in this change, we cherry-pick upstream fix to address this build
failure.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 weeks agoscript/run-make: enable ASan 56537/head
Kefu Chai [Sun, 17 Mar 2024 10:42:44 +0000 (18:42 +0800)]
script/run-make: enable ASan

when performing tests, we should enable sanitizers for detecting
potential issues. so, in this change, we enable ASsan, TSan and
UBSan.

script/run-make.sh is used by our CI job for testing PRs, so
enabling these sanitizers helps us to identify issues as early as
possible. because ASan cannot be used along with TSan, we prefer
using ASan for capturing memory related issue in favor of
detecting the multi-threading issues.

also, because of https://bugs.llvm.org/show_bug.cgi?id=23272, we
cannot enable multiple sanitizers. but we should enable UBSan as well,
once we can use a higher version of Clang than Clang-14. with
Clang-14, when enabling UBSan, we'd have following FTBFS
```
error: Cannot represent a difference across sections
```
when compiling `src/tools/neorados.cc`

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2 weeks agoMerge pull request #69457 from tchaikov/wip-test-objectstore-fix-leaks
Kefu Chai [Fri, 19 Jun 2026 11:03:14 +0000 (19:03 +0800)]
Merge pull request #69457 from tchaikov/wip-test-objectstore-fix-leaks

test/objectstore: hold split_blob cache shards in unique_ptr

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
2 weeks agoMerge pull request #69373 from mheler/wip-rgw-restore-queue-shard-fix
Soumya Koduri [Fri, 19 Jun 2026 10:57:00 +0000 (16:27 +0530)]
Merge pull request #69373 from mheler/wip-rgw-restore-queue-shard-fix

rgw/restore: run shard hash through HASH_PRIME

Reviewed-by: Soumya Koduri <skoduri@redhat.com>
2 weeks agoMerge pull request #68613 from tchaikov/wip-test-journal-fix-use-after-free
Ilya Dryomov [Fri, 19 Jun 2026 09:42:42 +0000 (11:42 +0200)]
Merge pull request #68613 from tchaikov/wip-test-journal-fix-use-after-free

journal/ObjectPlayer: don't acquire locks in destructor

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 weeks agoMerge pull request #68161 from abitdrag/wip-miki-image-prim-snap-removal
Ilya Dryomov [Fri, 19 Jun 2026 09:38:14 +0000 (11:38 +0200)]
Merge pull request #68161 from abitdrag/wip-miki-image-prim-snap-removal

rbd-mirror: prune obsolete primary mirror snapshots after relocation

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: VinayBhaskar-V <vvarada@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 weeks agoMerge pull request #69531 from xiubli/lazyio
Venky Shankar [Fri, 19 Jun 2026 04:02:53 +0000 (09:32 +0530)]
Merge pull request #69531 from xiubli/lazyio

common/options: mark client_force_lazyio as not runtime updatable

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2 weeks agoMerge pull request #69090 from rhcs-dashboard/76795-support-wildcard-sans
naman munet [Fri, 19 Jun 2026 03:44:00 +0000 (09:14 +0530)]
Merge pull request #69090 from rhcs-dashboard/76795-support-wildcard-sans

mgr/dashboard : Support wildcard sans and zonegroup hostnames

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Abhishek Desai <abhishek.desai1@ibm.com>
Reviewed-by: Naman Munet <nmunet@redhat.com>
2 weeks agoMerge pull request #69414 from Adarsha1999/teuthology-smoke-log-ignorelist
Ilya Dryomov [Thu, 18 Jun 2026 22:30:09 +0000 (00:30 +0200)]
Merge pull request #69414 from Adarsha1999/teuthology-smoke-log-ignorelist

qa/smoke/basic: add log-ignorelist entries for expected smoke test warnings

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2 weeks agoMerge pull request #69474 from sunyuechi/wip-rgw-a-declare-schedulers-kmip-deps
Casey Bodley [Thu, 18 Jun 2026 17:34:29 +0000 (13:34 -0400)]
Merge pull request #69474 from sunyuechi/wip-rgw-a-declare-schedulers-kmip-deps

rgw: declare rgw_a's dependency on rgw_schedulers and kmip

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge pull request #69393 from rhcs-dashboard/wip-rgw-roles-account-scoping
naman munet [Thu, 18 Jun 2026 17:08:25 +0000 (22:38 +0530)]
Merge pull request #69393 from rhcs-dashboard/wip-rgw-roles-account-scoping

mgr/dashboard: align RGW role management with Carbon and fix API routing

Reviewed-by: Naman Munet <nmunet@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Sagar Gopale <sagar.gopale@ibm.com>
2 weeks agoqa/smoke/basic: add log-ignorelist entries for expected smoke test warnings 69414/head
Adarsha Dinda [Thu, 11 Jun 2026 11:11:51 +0000 (16:41 +0530)]
qa/smoke/basic: add log-ignorelist entries for expected smoke test warnings

Ignore FS_DEGRADED in libcephfs_interface_tests and MON_DOWN in
rbd_python_api_tests to avoid false failures from transient cluster health
messages.

Signed-off-by: Adarsha Dinda <adarshadinda@Adarshas-MacBook-Pro.local>
2 weeks agomgr/dashboard : Support wildcard sans and zonegroup hostnames 69090/head
Abhishek Desai [Tue, 26 May 2026 07:48:40 +0000 (13:18 +0530)]
mgr/dashboard : Support wildcard sans and zonegroup hostnames
fixes : https://tracker.ceph.com/issues/76795
Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
2 weeks agopython-common/ceph/smb: Add smb features constants for SSL 68840/head
Rabinarayan Panigrahi [Thu, 18 Jun 2026 11:45:01 +0000 (17:15 +0530)]
python-common/ceph/smb: Add smb features constants for SSL

Add smb constants to support for ca_certificate validation and string
alteration

Signed-off-by: Rabinarayan Panigrahi <rapanigr@redhat.com>
2 weeks agomgr/cephadm: Registering smb features for ssl certificate with certmgr
Rabinarayan Panigrahi [Mon, 15 Jun 2026 19:10:58 +0000 (00:40 +0530)]
mgr/cephadm: Registering smb features for ssl certificate with certmgr

Here we are registering smb features such remote_control and keybridge
with certificate manager and can be list with ceph orch certmgr bindings
ls

Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Signed-off-by: Rabinarayan Panigrahi <rapanigr@redhat.com>