]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 days agoextblkdev/fcm: Add plugin identification for fcm 68024/head
Adam Kupczyk [Wed, 11 Feb 2026 12:03:18 +0000 (12:03 +0000)]
extblkdev/fcm: Add plugin identification for fcm

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b157db9cabccaef6ba4393e90515f594b2e76a35)

4 days agoextblkdev/fcm: Do not enable set_keepcaps by default
Adam Kupczyk [Wed, 11 Feb 2026 15:14:16 +0000 (15:14 +0000)]
extblkdev/fcm: Do not enable set_keepcaps by default

When one runs FCM enabled hardware config.set_keepcaps must be set.
However, having it as default is inadvised.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit dfb43c0d4e9fa4013b2a1e0367bee88a706497e5)

4 days agoextblkdev/fcm: Change douts/derrs
Adam Kupczyk [Wed, 11 Feb 2026 11:29:48 +0000 (11:29 +0000)]
extblkdev/fcm: Change douts/derrs

Remove printing fcm values to dout(1).
Upgraded inability to access FCM log from dout to derr.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 1054d63e52cf5bc9367eb83c5b6becbfe0b38397)

4 days agoextblkdev/fcm: Create perf counters with fcm stats
Adam Kupczyk [Wed, 11 Feb 2026 09:32:31 +0000 (09:32 +0000)]
extblkdev/fcm: Create perf counters with fcm stats

Created "extblkdev" section.
Each time plugin is asked to `get_stats()` also write to perf counters.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 52424420db560750fd3bbb6e1dac550beab0848d)

4 days agofixup warning of fcm plugin core
Adam Kupczyk [Wed, 11 Feb 2026 09:30:45 +0000 (09:30 +0000)]
fixup warning of fcm plugin core

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 2a0e3418d8da4406a13a16dcd39090a21c150582)

4 days agoextblkdev/fcm: derr when FCM and no block device discard
Adam Kupczyk [Thu, 25 Sep 2025 09:13:28 +0000 (05:13 -0400)]
extblkdev/fcm: derr when FCM and no block device discard

Add derr message when FCM is in use but discard is not enabled.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 9c0c40cfa697a905151305b2f79bfe65ca9366c7)

4 days agoextblkdev/fcm: Refuse to operate on multimedia lvm block devices
Adam Kupczyk [Thu, 25 Sep 2025 07:03:12 +0000 (03:03 -0400)]
extblkdev/fcm: Refuse to operate on multimedia lvm block devices

BlueStore is selecting were data is put to the device.
Merging 2 FCM devices together means that BlueStore will see free space
on one of the devices, but not know the other is full and asking to put
data there. It will cause -ENOSPC while free space is reported.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 4f85256062af71bc33554ed5664bb4d6bfd5dfa7)

4 days agoextblkdev/fcm: Adapt FCM plugin to RHCS9
Adam Kupczyk [Wed, 24 Sep 2025 14:03:47 +0000 (10:03 -0400)]
extblkdev/fcm: Adapt FCM plugin to RHCS9

Device /sys content is different from what original plugin expected.
Adapted to it.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b703ac411809a58ef8666e2c8f95d8af83f4ebcf)

4 days agoadded FCM plugin
Martin Ohmacht [Thu, 11 Aug 2022 14:37:03 +0000 (10:37 -0400)]
added FCM plugin

Signed-off-by: Martin Ohmacht <mohmacht@us.ibm.com>
(cherry picked from commit b0174c013dcfb7c076231da4cd9d8e6659beddea)

4 days agoos/bluestore: Make extblkdev missing a warning
Adam Kupczyk [Mon, 16 Feb 2026 13:50:26 +0000 (13:50 +0000)]
os/bluestore: Make extblkdev missing a warning

When mounting BlueStore for OSD problem with extblkdev meta are fatal error.
When mounting BlueStore in other cases extblkdev are just derr messages.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit f38ef0e652c9c00f23091ddb80c623d258104bef)

4 days agoextblkdev: Make preload one-time function
Adam Kupczyk [Tue, 10 Feb 2026 12:16:46 +0000 (12:16 +0000)]
extblkdev: Make preload one-time function

Subsequent calls to extblkdev::preload() do not do anything.
It is assumed that first call already loads all plugins that could be
loaded.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 358047f3cc3b4382899c636b8cdc67dcd303124b)

4 days agoos/bluestore: Add config bluestore_use_ebd
Adam Kupczyk [Thu, 22 Jan 2026 15:23:56 +0000 (15:23 +0000)]
os/bluestore: Add config bluestore_use_ebd

When EBD(extblkdev) plugin is in use usually it needs to present all the time.
For bluestore deployed with EBD plugin it makes it an error if bluestore tries
to mount and EBD plugin is not present.

Preload of extblkdev plugins was misplaced.
Moved loading plugins into BlueStore.
This way both OSD and tools can load plugins.

Plugins are now loaded only:
- before mkfs
- when extblkdev plugin is signalled in label meta

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit addb8388637737c79099bf96e0fe770d6f0dbbf8)

4 days agoextblkdev: Expand interface, add plugin id retrieval
Adam Kupczyk [Thu, 22 Jan 2026 13:55:51 +0000 (13:55 +0000)]
extblkdev: Expand interface, add plugin id retrieval

Plugin identification is a tool to implement two features:
1) Check the plugin is initialized
2) Verify that the plugin initialzied is the proper one

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit f4a002a06492e98c1d4468e7d202b249c5d7ea1a)

4 days agoMerge PR #68347 into tentacle
Patrick Donnelly [Mon, 4 May 2026 15:43:30 +0000 (08:43 -0700)]
Merge PR #68347 into tentacle

* refs/pull/68347/head:
nvmeofgw: propagate quorum feature to the NVMeofMonClient,
fix upgrade
code review changes
nvmeofgw: disaster set/clear command, introduced disaster-locations map,
 nvmeofgw: added support to nvmeof stretched cluster:
nvmeofgw: prevent map corruption while processing beacons from deleted gws
mon: add NVMEOF_BEACON_DIFF to mon_feature_t and mon CompatSet
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.

Reviewed-by: Alexander Indenbaum <aindenba@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
7 days agoMerge PR #67513 into tentacle
Patrick Donnelly [Fri, 1 May 2026 22:51:59 +0000 (15:51 -0700)]
Merge PR #67513 into tentacle

* refs/pull/67513/head:
neorados: Fix Neorados CephContext leak

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
7 days agoMerge PR #67508 into tentacle
Patrick Donnelly [Fri, 1 May 2026 22:50:21 +0000 (15:50 -0700)]
Merge PR #67508 into tentacle

* refs/pull/67508/head:
qa: suppress MismatchedFree operator delete RocksDB

Reviewed-by: Yaarit Hatuka <yaarithatuka@gmail.com>
7 days agoMerge PR #67321 into tentacle
Patrick Donnelly [Fri, 1 May 2026 22:38:44 +0000 (15:38 -0700)]
Merge PR #67321 into tentacle

* refs/pull/67321/head:
qa: set column for insertion
qa: bail sqlite3 on any error
qa: use actual sqlite3 blob instead of string
test: use json_extract instead of awkward json_tree

Reviewed-by: Yaarit Hatuka <yaarithatuka@gmail.com>
8 days agoMerge PR #68651 into tentacle
Patrick Donnelly [Fri, 1 May 2026 01:36:23 +0000 (18:36 -0700)]
Merge PR #68651 into tentacle

* refs/pull/68651/head:
rgw: read_obj_policy() consults s3:prefix when deciding between 403/404

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
8 days agoMerge PR #68524 into tentacle
Patrick Donnelly [Fri, 1 May 2026 01:31:42 +0000 (18:31 -0700)]
Merge PR #68524 into tentacle

* refs/pull/68524/head:
qa: Leak_StillReachable RocksDB error_handler

Reviewed-by: Yaarit Hatuka <yaarithatuka@gmail.com>
8 days agoMerge PR #68518 into tentacle
Patrick Donnelly [Fri, 1 May 2026 01:29:29 +0000 (18:29 -0700)]
Merge PR #68518 into tentacle

* refs/pull/68518/head:
pybind/mgr: call new _ceph_exit for killpoints
mgr: add ceph binding for exit

Reviewed-by: Yaarit Hatuka <yaarithatuka@gmail.com>
8 days agoMerge PR #68506 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 21:03:38 +0000 (14:03 -0700)]
Merge PR #68506 into tentacle

* refs/pull/68506/head:
rgw/beast: use strand executor for timeout timer to prevent concurrent socket access

Reviewed-by: Casey Bodley <cbodley@redhat.com>
8 days agoMerge PR #68463 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 21:02:53 +0000 (14:02 -0700)]
Merge PR #68463 into tentacle

* refs/pull/68463/head:
librbd: tweak ReadResult's handler for SparseBufferlist type
librbd: avoid losing sparseness in read_parent()

Reviewed-by: Mykola Golub <mgolub@suse.com>
8 days agoMerge PR #68371 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 21:01:45 +0000 (14:01 -0700)]
Merge PR #68371 into tentacle

* refs/pull/68371/head:
qa/tasks/pykmip: archive pykmip log after server down
qa/tasks/pykmip: use OpenSSL names instead IANA
qa/tasks/pykmip: drop py2 deps
Revert "qa/rgw/crypt: disable failing kmip testing"

Reviewed-by: Casey Bodley <cbodley@redhat.com>
8 days agoMerge PR #66358 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 21:00:45 +0000 (14:00 -0700)]
Merge PR #66358 into tentacle

* refs/pull/66358/head:
rgw/auth: a forwarded CreateBucket request in case of multisite has an empty
rgw/s3: Always include x-amz-content-sha256 header in AWS v4 signatures for S3 compatibility

Reviewed-by: Shilpa Jagannath <smanjara@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
8 days agoMerge PR #68583 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 18:18:36 +0000 (11:18 -0700)]
Merge PR #68583 into tentacle

* refs/pull/68583/head:
mgr/dashboard: Difference in "path" value observed when rgw user level export created via dashboard vs cli

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68475 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 18:15:35 +0000 (11:15 -0700)]
Merge PR #68475 into tentacle

* refs/pull/68475/head:
mgr/dashboard : Restrict create storage class with existing name

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68369 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 18:14:56 +0000 (11:14 -0700)]
Merge PR #68369 into tentacle

* refs/pull/68369/head:
found duplicate series for the match group {fs_id="-1"}

Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
8 days agoMerge PR #67949 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 17:48:49 +0000 (10:48 -0700)]
Merge PR #67949 into tentacle

* refs/pull/67949/head:
mgr/dashboard: [storage-class]: Deleting local storage class from UI does not remove its entry from zone

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #67912 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 17:48:10 +0000 (10:48 -0700)]
Merge PR #67912 into tentacle

* refs/pull/67912/head:
mgr/dashboard: Add restore events in notification screen

Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
8 days agoMerge PR #67871 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 17:47:23 +0000 (10:47 -0700)]
Merge PR #67871 into tentacle

* refs/pull/67871/head:
tentacle: mgr/dashboard: add helper text to bucket form > policy and other spacing fixes

Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
8 days agoMerge PR #68604 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 17:26:54 +0000 (10:26 -0700)]
Merge PR #68604 into tentacle

* refs/pull/68604/head:
mr/dashboard: remove rgw_servers filter from radosgw-sync-overview grafana dashboard

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68546 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:55:04 +0000 (08:55 -0700)]
Merge PR #68546 into tentacle

* refs/pull/68546/head:
mgr/dashboard: mgr/dashboard: Carbonize Realm Name and Token block in Multi-site Replication Wizard

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68542 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:54:33 +0000 (08:54 -0700)]
Merge PR #68542 into tentacle

* refs/pull/68542/head:
mgr/dashboard: [snap-visibility]Edit Client config option remains stuck in loading when nfs user is configured

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68520 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:54:02 +0000 (08:54 -0700)]
Merge PR #68520 into tentacle

* refs/pull/68520/head:
mgr/dashboard : fix-non-versioning-bucket-issue

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68513 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:53:16 +0000 (08:53 -0700)]
Merge PR #68513 into tentacle

* refs/pull/68513/head:
mgr/dashboard: Option to select archive option while Import Multi-site Token

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #68512 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:52:36 +0000 (08:52 -0700)]
Merge PR #68512 into tentacle

* refs/pull/68512/head:
mgr/dashboard: sync policy created for a bucket in Object >> Multi-site >> Sync-policy, is not reflecting under bucket's replication

Reviewed-by: Afreen Misbah <afreen@ibm.com>
8 days agoMerge PR #67840 into tentacle
Patrick Donnelly [Thu, 30 Apr 2026 15:51:59 +0000 (08:51 -0700)]
Merge PR #67840 into tentacle

* refs/pull/67840/head:
mgr/dashboard: Fix make check failures
mgr/dashboard: Round off y-axis value of area chart
mgr/dashboard: Fix padding of overview page
mgr/dashboard: Add capacity thresholds
mgr/dashboard: Fix loading states in storage overview card
mgr/dashboard: Add tootltip to storage overview
mgr/dashboard: Fixing message when prometheus is disabled in performance charts
mgr/dashboard: show miscellaneous data used
mgr/dashboard: fix consumption chart units
mgr/dashboard: rename expand-cluster to add-storage
mgr/dashboard: update onboarding screen as per design
mgr/dashboard: Fix scrubbing state
mgr/dashboard: Fix snapshot Api firing twice
mgr/dashboard: Add data resileincy panel
mgr/dashboard: Add data resileincy card
mgr/dashboard: add storage consumption card
mgr/dashboard : update telemetry notification for simple mode
mgr/dashboard:revamp on-borading screen
mgr/dashboard: Generic Performace Chart - Carbon
mgr/dashboard: Add filtering of alerts via route
mgr/dashboard: Add skeleton states for alerts card
mgr/dashboard: Fix css in alerts card
mgr/dashboard: Fix breaking layout in overview page
mgr/dashboard: Add hardware tab to health card
mgr/dashboard: Added variations of alerts card sub total layout
mgr/dashboard: Css fixes for health card and alerts card
fix for quorum in API
mgr/dashboard: Add systems tab to health card
mgr/dashboard: Add alerts card
mgr/dashboard: Add health check panel
mgr/dashboard: Add health card
mgr/dashboard: side-panel enhancements
mgr/dashboard: introduce side panel as a reusable component
mgr/dashboard: Removed Raw capacity toggle
mgr/dashboard: Added unit tests
Added qurey data
mgr/dashboard: Added tool definition tip
Added query tital and used capacity data
mgr/dashboard: Add storage card to overview page

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
9 days agonvmeofgw: propagate quorum feature to the NVMeofMonClient, 68347/head
Leonid Chernin [Tue, 17 Mar 2026 15:40:16 +0000 (17:40 +0200)]
nvmeofgw: propagate quorum feature to the NVMeofMonClient,
          reverted feature bit NVMEOF_BEACON_DIFF:

   -NVMeofGwMon adds a quorum_features indication to the MonClient map.
   -MonClient initially sends beacons without applying the BEACON_DIFF logic.
   -MonClient begins applying the BEACON_DIFF logic only when the BEACON_DIFF bit
    is set in the quorum_features field of the NVMeoF monitor map.
   -added mon commands:
     nvme-gw set beacon-diff disable
     nvme-gw set beacon-diff enable
   -performed changes in encode/decode of the BEACON_DIFF feature
   -reverted NVMEOF_BEACON_DIFF bit

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit f3f8bde10c86e0c5d4f5286f8e249fc26fa3605d)

Conflicts:
 ../src/include/ceph_features.h
 conflict because UMBRELLA feature  was in main and should not be in tentacle

9 days agofix upgrade
Leonid Chernin [Sun, 1 Mar 2026 15:43:01 +0000 (17:43 +0200)]
fix upgrade
 remove invalid code from NVMeofGwSerialize.h
 put encode/decode at the file NVmeofGwMap.h

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit c319e6a2770f06165a18ffc9170de80f1c6d1967)

9 days agocode review changes
Leonid Chernin [Wed, 11 Feb 2026 13:16:49 +0000 (15:16 +0200)]
code review changes

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit 380ebf0087aa90f1417b5f99384e296135a84fd1)

9 days agonvmeofgw: disaster set/clear command, introduced disaster-locations map,
Leonid Chernin [Sun, 18 Jan 2026 19:28:39 +0000 (21:28 +0200)]
nvmeofgw: disaster set/clear command, introduced disaster-locations map,
          changes in  behavior of failover/failback, additional
          validations added

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit 67f3a7f594dd048622bca223970e87ddae7ddf2d)

9 days ago nvmeofgw: added support to nvmeof stretched cluster:
Leonid Chernin [Thu, 23 Oct 2025 05:48:24 +0000 (08:48 +0300)]
 nvmeofgw: added support to nvmeof stretched cluster:
  GW commands added : set location and set admin state enable/disable
  added start-failback <location> command.

  failover logic is impacted by GW location
  implement GW admin commands  enable/disable
  added map  for location-failback-in-progress
  failback between locations happens only by monitor command
  implemented new ana-group relocation process used
  when inter-location failback command sent
  added upgrade rules

fixes: https://tracker.ceph.com/issues/74210

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit 315da540478d201b59f35060604e5ab6f9e6f7bb)

9 days agonvmeofgw: prevent map corruption while processing beacons from deleted gws
Leonid Chernin [Mon, 8 Dec 2025 20:54:44 +0000 (22:54 +0200)]
nvmeofgw: prevent map corruption while processing beacons from deleted gws

Fix race issue of map corruption when deleted gw sends beacons
but this gw data was removed from pending map and still exists in map.
Process beacons only if GW's data exists in both maps:
main-map and pending-map, otherwise just ignore beacons.

fixes: https://tracker.ceph.com/issues/74160

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
(cherry picked from commit 3636dc3598b7022bff623d686cbee83ed288d966)

9 days agomon: add NVMEOF_BEACON_DIFF to mon_feature_t and mon CompatSet
Samuel Just [Thu, 6 Nov 2025 23:54:50 +0000 (23:54 +0000)]
mon: add NVMEOF_BEACON_DIFF to mon_feature_t and mon CompatSet

NOPE NOPE
In order for the client to safely send BEACON_DIFF messages, it
needs to be the case that the leader at the time of receipt will
support BEACON_DIFF.

Simply using the connection features for the MonClient's target mon is
insufficient, because it might be a peon.  If the peon supports
BEACON_DIFF and the leader does not the leader will either crash or
interpret it as a full BEACON.  Neither outcome is acceptable.

Instead, we need to wire up a feature bit to the MonMap mon_feature_t
members and the CompatSet.

Adding FEATURE_BEACON_DIFF to ceph::features::mon get_supported()
and get_persistent() ensures that once all monitors in the quorum
support it, MonMap::get_required_features() will include it.
See Elector::propose_to_peers, Monitor::(win|lose)_election,
MonmapMonitor::apply_mon_features.

Once FEATURE_BEACON_DIFF is present in MonMap::get_required_features():
- Monitor::apply_monmap_to_compatset_features() will prevent
  downgrades of the monitors by updating the CompatSet to include
  CEPH_MON_FEATURE_INCOMPAT_NVMEOF_BEACON_DIFF
- Monitor::calc_quorum_requirements() will set
  Monitor::required_features to require the NVMEOF_BEACON_DIFF
  for any monitor peers.
- MonClient::get_monmap_required_features() will eventually include
  ceph::features::mon::FEATURE_NVMEOF_BEACON_DIFF.

Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit e55ad7bce2fb85096cd31ff9846403f9dbd01e85)

9 days agonvmeofgw: beacon diff implementation in the monitor and in the MonClient.
Leonid Chernin [Mon, 15 Sep 2025 11:04:04 +0000 (14:04 +0300)]
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.

     -monclient encodes subsystems by beacon-diff rules if BEACON_DIFF
      bit is enabled by quorum
     -monitor processes beacons by beacon-diff new schema
     -monitor detects sequence out of order(ooo) condition and handles it
     -in case ooo detected monitor send ack to the gw with the expected correct sequence
     -monitor skips failovers for some interval when ooo detected
     -monitor ignores all becons with incorrect sequences until gw sends expected one
     -coding upgrade rules

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
Fixes: https://tracker.ceph.com/issues/72394
(cherry picked from commit 3555a28e45c5b44289f12abe2fc843e21c7ebf87)

Conflicts:
  src/mon/NVMeofGwMon.h
  check_beacon_timeout() was in tentacle, and in main, but wasn't a part of this commit.
  Conflict resolution - this should be there because it is required for fast failover

  src/test/CMakeLists.txt
  the problem was that there is an empty line at the end of the file in main, but not in tentacle

10 days agoMerge PR #68387 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 19:29:31 +0000 (12:29 -0700)]
Merge PR #68387 into tentacle

* refs/pull/68387/head:
mgr/cephadm: fix mgmt-gateway startup on IPv6 VIP

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
10 days agoMerge PR #68357 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 19:26:46 +0000 (12:26 -0700)]
Merge PR #68357 into tentacle

* refs/pull/68357/head:
qa/suites/upgrade/telemetry-upgrade: ignore expected health warning
qa/suites/orch/cephadm: replace "reef" with "v18.2.8"
qa/suites/fs/upgrade/mds_upgrade_sequence: replace "reef" with "v18.2.8"
qa/suites/upgrade: use tagged versions of reef

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Redouane Kachach <rkachach@redhat.com>
Reviewed-by: Nitzan Mordechai <nmordech@redhat.com>
10 days agoMerge PR #68149 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 18:58:27 +0000 (11:58 -0700)]
Merge PR #68149 into tentacle

* refs/pull/68149/head:
qa: Add nvmeof upgrade from v20.2.0

Reviewed-by: Aviv Caro <Aviv.Caro@ibm.com>
10 days agoMerge PR #68238 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 18:57:24 +0000 (11:57 -0700)]
Merge PR #68238 into tentacle

* refs/pull/68238/head:
mgr/dashboard: Rename Alert breadcrumb to Alert Rules

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
10 days agoMerge PR #68086 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 18:47:38 +0000 (11:47 -0700)]
Merge PR #68086 into tentacle

* refs/pull/68086/head:
mgr/cephadm: Add KMIP server support for NVMeoF gateway

Reviewed-by: Redouane Kachach <rkachach@redhat.com>
Reviewed-by: Tomer Haskalovitch <tomer.haska@ibm.com>
10 days agoMerge PR #67799 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 18:45:32 +0000 (11:45 -0700)]
Merge PR #67799 into tentacle

* refs/pull/67799/head:
mgr/dashboard: Add secure and verify-host-name to "listener add" on NVMeoF CLI.

Reviewed-by: Aviv Caro <Aviv.Caro@ibm.com>
Reviewed-by: Tomer Haskalovitch <tomer.haska@ibm.com>
10 days agoMerge PR #67637 into tentacle
Patrick Donnelly [Tue, 28 Apr 2026 18:44:13 +0000 (11:44 -0700)]
Merge PR #67637 into tentacle

* refs/pull/67637/head:
mgr/dashboard: Misleading warning when no eligible devices are available for OSD creation

Reviewed-by: Afreen Misbah <afreen@ibm.com>
10 days agomgr/dashboard: Fix make check failures 67840/head
Afreen Misbah [Tue, 28 Apr 2026 09:57:32 +0000 (15:27 +0530)]
mgr/dashboard: Fix make check failures

- styleints, yaml was not rebased, and overview test failures

Signed-off-by: Afreen Misbah <afreen@ibm.com>
10 days agorgw: read_obj_policy() consults s3:prefix when deciding between 403/404 68651/head
Casey Bodley [Thu, 23 Apr 2026 15:53:16 +0000 (11:53 -0400)]
rgw: read_obj_policy() consults s3:prefix when deciding between 403/404

when read_obj_policy() gets ENOENT, it only returns 404 NoSuchKey if the
requester has s3:ListBucket permission. however, policy that allows
s3:ListBucket may be conditional on the s3:prefix to restrict listings
to certain paths/object names. add the requested object name to the iam
environment as s3:prefix to match aws behavior here

Fixes: https://tracker.ceph.com/issues/74398
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 363a81ca8d0bf2f1e84b2d48aa02be40d5398147)

11 days agoMerge PR #68345 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 20:51:19 +0000 (16:51 -0400)]
Merge PR #68345 into tentacle

* refs/pull/68345/head:
mgr/dashboard: Add location to gateway info command in NVMeoF CLI

Reviewed-by: Tomer Haskalovitch <tomer.haska@ibm.com>
11 days agoMerge PR #68148 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 20:46:49 +0000 (16:46 -0400)]
Merge PR #68148 into tentacle

* refs/pull/68148/head:
qa: ignore NVMEOF_GATEWAY_DOWN in nvmeof_scalability.yaml
qa/tasks/nvmeof.py: retry do_check if gw in CREATED
qa/tasks/nvmeof.py: Fix tharsher daemon_rm revival

Reviewed-by: Aviv Caro <Aviv.Caro@ibm.com>
11 days agoMerge PR #68038 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:28:45 +0000 (15:28 -0400)]
Merge PR #68038 into tentacle

* refs/pull/68038/head:
librbd: store CRC32C with initial value -1 to match msgr2 validation
librbd: add rbd_aio_write_with_crc32c API for precomputed checksums

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
11 days agoMerge PR #67600 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:27:10 +0000 (15:27 -0400)]
Merge PR #67600 into tentacle

* refs/pull/67600/head:
mgr/dashboard: Add DHCHAP controller key to NVME host commands

Reviewed-by: Nizamudeen A <nia@redhat.com>
11 days agoMerge PR #67526 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:25:47 +0000 (15:25 -0400)]
Merge PR #67526 into tentacle

* refs/pull/67526/head:
qa: Fix coredumps caused by udisks

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Aviv Caro <Aviv.Caro@ibm.com>
11 days agoMerge PR #67470 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:23:58 +0000 (15:23 -0400)]
Merge PR #67470 into tentacle

* refs/pull/67470/head:
mgr/dashboard: Adding rados ns option into add_ns_req

Reviewed-by: Tomer Haskalovitch <tomer.haska@ibm.com>
Reviewed-by: Aviv Caro <Aviv.Caro@ibm.com>
11 days agoMerge PR #67326 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:07:42 +0000 (15:07 -0400)]
Merge PR #67326 into tentacle

* refs/pull/67326/head:
mgr/dashboard: bump nvmeof submodule to 1.7.2
mgr/dashboard: bump nvmeof submodule to 1.6.7
mgr/dashboard: bump nvmeof submodule to 1.6.5

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
11 days agoMerge PR #66933 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 19:04:35 +0000 (15:04 -0400)]
Merge PR #66933 into tentacle

* refs/pull/66933/head:
mgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec

Reviewed-by: Adam King <adking@redhat.com>
11 days agoMerge PR #68431 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 18:36:07 +0000 (00:06 +0530)]
Merge PR #68431 into tentacle

* refs/pull/68431/head:
qa/valgrind: generalize and group MismatchedFree suppressions
qa/valgrind: generalize suppressions for gcc-14 MismatchedFree
qa: Leak_StillReachable RocksDB error_handler
qa: suppress false positive delete map mismatch errors

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
11 days agoMerge PR #68399 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 18:34:31 +0000 (00:04 +0530)]
Merge PR #68399 into tentacle

* refs/pull/68399/head:
ceph_mon: Fix shutdown order to destroy Monitor before closing mon store

Reviewed-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
11 days agoMerge PR #64692 into tentacle
Patrick Donnelly [Mon, 27 Apr 2026 15:39:40 +0000 (21:09 +0530)]
Merge PR #64692 into tentacle

* refs/pull/64692/head:
mgr/cephadm: fixing generate_cert to pick the right root subject
mgr/cephadm: include cluster FSID in root CA Common Name (CN)

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2 weeks agoMerge PR #66027 into tentacle
Patrick Donnelly [Fri, 24 Apr 2026 16:15:30 +0000 (21:45 +0530)]
Merge PR #66027 into tentacle

* refs/pull/66027/head:
Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty

Reviewed-by: Yuval Lifshitz <ylifshit@redhat.com>
2 weeks agoMerge PR #67573 into tentacle
Patrick Donnelly [Fri, 24 Apr 2026 15:03:58 +0000 (20:33 +0530)]
Merge PR #67573 into tentacle

* refs/pull/67573/head:
rgw/lc: Do not delete DM if its at end of pagination list.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge PR #67349 into tentacle
Patrick Donnelly [Fri, 24 Apr 2026 15:02:09 +0000 (20:32 +0530)]
Merge PR #67349 into tentacle

* refs/pull/67349/head:
kv/RocksDB: Add instrumentation to BinnedLRUCache

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Jaya Prakash Madaka <jayaprakash@ibm.com>
2 weeks agomr/dashboard: remove rgw_servers filter from radosgw-sync-overview grafana dashboard 68604/head
Aashish Sharma [Thu, 23 Apr 2026 16:17:41 +0000 (21:47 +0530)]
mr/dashboard: remove rgw_servers filter from radosgw-sync-overview grafana dashboard

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

2 weeks agomgr/dashboard: Difference in "path" value observed when rgw user level export created... 68583/head
Dnyaneshwari Talwekar [Wed, 22 Apr 2026 09:50:18 +0000 (15:20 +0530)]
mgr/dashboard: Difference in "path" value observed when rgw user level export created via dashboard vs cli

Fixes: https://tracker.ceph.com/issues/75425
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
(cherry picked from commit 0efa59c305ca4c0f4488c27c0f946c7afbf3d5f6)

2 weeks agoMerge PR #68316 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:33:33 +0000 (16:33 -0400)]
Merge PR #68316 into tentacle

* refs/pull/68316/head:
qa: allow multiple mgr sessions during eviction test

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #68315 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:33:04 +0000 (16:33 -0400)]
Merge PR #68315 into tentacle

* refs/pull/68315/head:
qa: resolve py3.12 regression for random.sample

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #68314 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:32:44 +0000 (16:32 -0400)]
Merge PR #68314 into tentacle

* refs/pull/68314/head:
qa/cephfs: do not validate error string in "fs authorize" tests
mon/AuthMonitor: add osd w cap for superuser client

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #68313 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:31:57 +0000 (16:31 -0400)]
Merge PR #68313 into tentacle

* refs/pull/68313/head:
mds: use SimpleLock::WAIT_ALL for wait mask

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #67808 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:30:16 +0000 (16:30 -0400)]
Merge PR #67808 into tentacle

* refs/pull/67808/head:
mds: scrub pins more inodes than the mds_cache_memory_limit

Reviewed-by: Kotresh Hiremath Ravishankar <khiremat@redhat.com>
Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2 weeks agoMerge PR #68169 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:29:37 +0000 (16:29 -0400)]
Merge PR #68169 into tentacle

* refs/pull/68169/head:
qa/workunits: Add updated kernel archive URL

Reviewed-by: Kotresh Hiremath Ravishankar <khiremat@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
2 weeks agoMerge PR #68439 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 20:29:12 +0000 (16:29 -0400)]
Merge PR #68439 into tentacle

* refs/pull/68439/head:
mds: add ref counting to LogSegment

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #67341 into tentacle
Patrick Donnelly [Thu, 23 Apr 2026 19:38:57 +0000 (15:38 -0400)]
Merge PR #67341 into tentacle

* refs/pull/67341/head:
ceph-volume: skip redundant NVMe mkfs discards

Reviewed-by: Teoman Onay <tonay@ibm.com>
2 weeks agoceph-volume: skip redundant NVMe mkfs discards 67341/head
Ujjawal Anand [Fri, 6 Feb 2026 11:26:58 +0000 (16:56 +0530)]
ceph-volume: skip redundant NVMe mkfs discards

- Avoid redundant discard during mkfs when discard is disabled
- Reduces mkfs time on large NVMe devices by skipping long running discard operations

Fixes: https://tracker.ceph.com/issues/74908
Signed-off-by: Ujjawal Anand <ujjawal.anand@ibm.com>
(cherry picked from commit daebcfb8944789a47da20ffec3e03a5b2737f711)

2 weeks agoMerge PR #68379 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:29:45 +0000 (13:29 -0400)]
Merge PR #68379 into tentacle

* refs/pull/68379/head:
cephadm: wait for latest osd map after ceph-volume before OSD deploy

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #68286 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:28:04 +0000 (13:28 -0400)]
Merge PR #68286 into tentacle

* refs/pull/68286/head:
ceph-volume: skip mkfs discard for LVM NVMe OSDs

Reviewed-by: Teoman Onay <tonay@ibm.com>
2 weeks agoMerge PR #68121 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:27:25 +0000 (13:27 -0400)]
Merge PR #68121 into tentacle

* refs/pull/68121/head:
orch/cephadm: fix osd.default creation

Reviewed-by: Teoman Onay <tonay@ibm.com>
2 weeks agoMerge PR #68108 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:24:53 +0000 (13:24 -0400)]
Merge PR #68108 into tentacle

* refs/pull/68108/head:
ceph-volume: skip virtual cdrom devices in inventory

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #67989 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:24:27 +0000 (13:24 -0400)]
Merge PR #67989 into tentacle

* refs/pull/67989/head:
ceph-volume: include LVM mapper devices in get_devices()

Reviewed-by: Adam King <adking@redhat.com>
2 weeks agoMerge PR #67916 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:23:51 +0000 (13:23 -0400)]
Merge PR #67916 into tentacle

* refs/pull/67916/head:
src/ceph-volume: fast device unavailable as error

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agoMerge PR #67418 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:22:51 +0000 (13:22 -0400)]
Merge PR #67418 into tentacle

* refs/pull/67418/head:
mgr/cephadm: validate hostname in NodeProxyCache
node-proxy: improve HTTP error logging in client
node-proxy: get serial number instead of SKU
node-proxy: allow multiple sources per component
node-proxy: re-auth and retry once on 401
node-proxy: fix flake8 E721 in _dict_diff
node-proxy: make the update loop interval configurable
mgr/node-proxy: fix "ceph orch hardware status --category criticals"
node-proxy: normalize storage data per member
node-proxy: encapsulate send logic in dedicated method
node-proxy: log actual data delta in reporter
node-proxy: add periodic heartbeats in main and reporter loops
node-proxy: adjust log levels
node-proxy: add unit tests
node-proxy: add tox config for mypy, flake8, isort, black
node-proxy: black and isort formatting pass
node-proxy: fix mypy errors
node-proxy: handle nested Redfish paths for components
node-proxy: split out config, bootstrap and redfish logic
node-proxy: refactor config loading
node-proxy: add 'vendor based' redfish system selection
node-proxy: introduce component spec registry and overrides for updates
mgr/cephadm: safe status/health access in node-proxy agent and inventory
node-proxy: narrow build_data exception handling and re-raise
node-proxy: refactor Endpoint/EndpointMgr and fix chassis paths
node-proxy: use safe field access in storage update
node-proxy: reduce log verbosity for missing optional fields

Reviewed-by: Teoman Onay <tonay@ibm.com>
2 weeks agoMerge PR #67343 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:21:13 +0000 (13:21 -0400)]
Merge PR #67343 into tentacle

* refs/pull/67343/head:
ceph-volume: fix test_reject_readonly_device unit test
ceph-volume: single lvs call to speed up exclude_lvm_osd_devices
ceph-volume: avoid Device() instantiation in lvm OSD filtering
ceph-volume: avoid RuntimeError on ceph-volume raw list with non-existent loop devices

Reviewed-by: Teoman Onay <tonay@ibm.com>
2 weeks agoMerge PR #68344 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 17:04:32 +0000 (13:04 -0400)]
Merge PR #68344 into tentacle

* refs/pull/68344/head:
test/rgw: remove depracated boto dependency

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2 weeks agoMerge PR #67850 into tentacle
Patrick Donnelly [Wed, 22 Apr 2026 14:38:38 +0000 (10:38 -0400)]
Merge PR #67850 into tentacle

* refs/pull/67850/head:
mgr, qa: clarify module checks in DaemonServer
mgr, qa: add `pending_modules` to asock command
mgr, common, qa, doc: issue health error after max expiration is exceeded
mgr: ensure that all modules have started before advertising active mgr

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 weeks agomgr/dashboard: mgr/dashboard: Carbonize Realm Name and Token block in Multi-site... 68546/head
Sagar Gopale [Fri, 17 Apr 2026 10:49:44 +0000 (16:19 +0530)]
mgr/dashboard: mgr/dashboard: Carbonize Realm Name and Token block in Multi-site Replication Wizard

Fixes: https://tracker.ceph.com/issues/76085
Signed-off-by: Sagar Gopale <sagar.gopale@ibm.com>
(cherry picked from commit 5155b2125db002c21be1b014ccd6389b7c7b386e)

2 weeks agomgr/dashboard: Round off y-axis value of area chart
Afreen Misbah [Tue, 21 Apr 2026 20:14:31 +0000 (01:44 +0530)]
mgr/dashboard: Round off y-axis value of area chart

- by default y-axos set to 1 for all
- the value round off for area chart is seperated from y-axis ticks
- also fixes a bug where all IOPS y-ticks being repeated 1,1,0,0

The following values are set for now:

IOPS: valueDecimals=0, axisDecimals=1
Latency: valueDecimals=2, axisDecimals=1
Throughput: valueDecimals=2, axisDecimals=1
Consumption: valueDecimals=2, axisDecimals=1

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

Signed-off-by: Afreen Misbah <afreen@ibm.com>
(cherry picked from commit a6012c3954830f4b60ef49218d40d4e8ed3bd14c)

2 weeks agomgr/dashboard: [snap-visibility]Edit Client config option remains stuck in loading... 68542/head
Dnyaneshwari Talwekar [Wed, 22 Apr 2026 05:43:44 +0000 (11:13 +0530)]
mgr/dashboard: [snap-visibility]Edit Client config option remains stuck in loading when nfs user is configured

Fixes: https://tracker.ceph.com/issues/76200
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
(cherry picked from commit 820a57fa3255597552bd952bf59cce863347f856)

2 weeks agoqa: Leak_StillReachable RocksDB error_handler 68524/head
Nitzan Mordechai [Tue, 10 Mar 2026 09:56:14 +0000 (09:56 +0000)]
qa: Leak_StillReachable RocksDB error_handler

Leak stillreachable on RocksDB on Rocky10

Fixes: https://tracker.ceph.com/issues/75430
Signed-off-by: Nitzan Mordechai <nmordec@ibm.com>
(cherry picked from commit 7806ba5cdf33f8f25a08c22aac6beece736fbc87)

Conflicts:
qa/valgrind.supp: trivial union conflict; relocated to avoid more

2 weeks agomgr/dashboard : fix-non-versioning-bucket-issue 68520/head
Abhishek Desai [Mon, 20 Apr 2026 05:44:28 +0000 (11:14 +0530)]
mgr/dashboard : fix-non-versioning-bucket-issue
fixes : https://tracker.ceph.com/issues/76109
Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
(cherry picked from commit 14d958ae2dab8442d2432fce0005bffa7dc75b85)

2 weeks agomgr, qa: clarify module checks in DaemonServer 67850/head
Laura Flores [Fri, 12 Sep 2025 20:14:30 +0000 (20:14 +0000)]
mgr, qa: clarify module checks in DaemonServer

The current check groups modules not being
enabled with failing to initialize. In this commit,
we reorder the checks:

1: Screen for a module being enabled. If it's not,
   issue an EOPNOTSUPP with instructions on how
   to enable it.

2. Screen for if a module is active. If a module
   is enabled, then the cluster expects it to
   be active to support commands. If the module
   took too long to initialize though, we will
   catch this and issue an ETIMEDOUT error with
   a link for troubleshooting.

Now, these two separate issues are not grouped
together, and they are checked in the right order.

Fixes: https://tracker.ceph.com/issues/71631
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit fdc072f15da7ec4c918a1ebff439f6ce4922f33f)

2 weeks agomgr, qa: add `pending_modules` to asock command
Laura Flores [Thu, 11 Sep 2025 22:13:51 +0000 (22:13 +0000)]
mgr, qa: add `pending_modules` to asock command

Now, the command `ceph tell mgr mgr_status` will show a
"pending_modules" field. This is another way for Ceph operators
to check which modules haven't been initalized yet (in addition
to the health error).

This command was also added to testing scenarios in the workunit.

Fixes: https://tracker.ceph.com/issues/71631
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit 68221661b00f8a6bef0fbd7b5401aa49eb5118d0)

2 weeks agomgr, common, qa, doc: issue health error after max expiration is exceeded
Laura Flores [Tue, 29 Jul 2025 22:46:46 +0000 (22:46 +0000)]
mgr, common, qa, doc: issue health error after max expiration is exceeded

----------------- Enhancement to the Original Fix -----------------

During a mgr failover, the active mgr is marked available if:
  1. The mon has chosen a standby to be active
  2. The chosen active mgr has all of its modules initialized

Now that we've improved the criteria for sending the "active" beacon
by enforcing it to retry initializing mgr modules, we need to account
for extreme cases in which the modules are stuck loading for a very long
time, or even indefinitely. In these extreme cases where the modules might
never initialize, we don't want to delay sending the "active" beacon for
too long. This can result in blocking other important mgr functionality,
such as reporting PG availability in the health status. We want
to avoid sending warnings about PGs being unknown in the health status when
that's not ultimately the problem.

To account for an exeptionally long module loading time, I added a new
configurable `mgr_module_load_expiration`. If we exceed this maximum amount
of time (in ms) allotted for the active mgr to load the mgr modules before declaring
availability, the standby will then proceed to mark itself "available" and
send the "active" beacon to the mon and unblock other critical mgr functionality.

If this happens, a health error will be issued at this time, indicating
which mgr modules got stuck initializing (See src/mgr/PyModuleRegistry.cc). The
idea is to unblock the rest of the mgr's critical functionality while making it
clear to Ceph operators that some modules are unusable.

--------------------- Integration Testing --------------------

The workunit was rewritten so it tests for these scenarios:

1. Normal module loading behavior (no health error should be issued)
2. Acceptable delay in module loading behavior (no health error should be
   issued)
3. Unacceptable delay in module loading behavior (a health error should be
   issued)

--------------------- Documentation --------------------

This documentation explains the "Module failed to initialize"
cluster error.

Users are advised to try failing over
the mgr to reboot the module initialization process,
then if the error persists, file a bug report. I decided
to write it this way instead of providing more complex
debugging tips such as advising to disable some mgr modules
since every case will be different depending on which modules
failed to initialize.

In the bug report, developers can ask for the health detail
output to narrow down which module is causing a bottleneck,
and then ask the user to try disabling certain modules until
the mgr is able to fully initialize.

Fixes: https://tracker.ceph.com/issues/71631
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit bf25a08cc58c8e872806e92dd36d9ff91e5523d9)

2 weeks agomgr: ensure that all modules have started before advertising active mgr
Laura Flores [Fri, 25 Apr 2025 22:11:19 +0000 (22:11 +0000)]
mgr: ensure that all modules have started before advertising active mgr

----------------- Explanation of Problem ----------------

When the mgr is restarted or failed over via `ceph mgr fail` or during an
upgrade, mgr modules sometimes take longer to start up (this includes
loading their class, commands, and module options, and being removed
from the `pending_modules` map structure). This startup delay can happen
due to a cluster's specific hardware or if a code bottleneck is triggered in
a module’s `serve()` function (each mgr module has a `serve()` function that
performs initialization tasks right when the module is loaded).

When this startup delay occurs, any mgr module command issued against the
cluster around the same time fails with error saying that the command is not
supported:
```
$ ceph mgr fail; ceph fs volume ls
Error ENOTSUP: Warning: due to ceph-mgr restart, some PG states may not be up to date
Module 'volumes' is not enabled/loaded (required by command 'fs volume ls'): use `ceph mgr module enable volumes` to enable it
```

We should try to lighten any bottlenecks in the mgr module `serve()`
functions wherever possible, but the root cause of this failure is that the
mgr sends a beacon to the mon too early, indicating that it is active before
the module loading has completed. Specifically, some of the mgr modules
have loaded their class but have not yet been deleted from the `pending_modules`
structure, indicating that they have not finished starting up.

--------------------- Explanation of Fix  --------------------

This commit improves the criteria for sending the “active” beacon to the mon so
the mgr does not signal that it’s active too early. We do this through the following additions:

1. A new context `ActivePyModules::recheck_modules_start` that will be set if not all modules
   have finished startup.

2. A new function `ActivePyModules::check_all_modules_started()` that checks if modules are
   still pending startup; if all have started up (`pending_modules` is empty), then we send
   the beacon right away. But if some are still pending, we pass the beacon task on to the new
   recheck context `ActivePyModules::recheck_modules_start` so we know to send the beacon later.

3. Logic in ActivePyModules::start_one() that only gets triggered if the modules did not all finish
   startup the first time we checked. We know this is the case if the new recheck context
   `recheck_modules_start` was set from `nullptr`. The beacon is only sent once `pending_modules` is
   confirmed to be empty, which means that all the modules have started up and are ready to support commands.

4. Adjustment of when the booleans `initializing` and `initialized` are set. These booleans come into play in
   MgrStandby::send_beacon() when we check that the active mgr has been initialized (thus, it is available).
   We only send the beacon when this boolean is set. Currently, we set these booleans at the end of Mgr::init(),
   which means that it gets set early before `pending_modules` is clear. With this adjustment, the bools are set
   only after we check that all modules have started up. The send_beacon code is triggered on mgr failover AND on
   every Mgr::tick(), which occurs by default every two seconds. If we don’t adjust when these bools are set, we
   only fix the mgr failover part, but the mgr still sends the beacon too early via Mgr::tick(). Below is the relevant
   code from MgrStandby::send_beacon(), which is triggered in Mgr::background_init() AND in Mgr::tick():
```
  // Whether I think I am available (request MgrMonitor to set me
  // as available in the map)
  bool available = active_mgr != nullptr && active_mgr->is_initialized();

  auto addrs = available ? active_mgr->get_server_addrs() : entity_addrvec_t();
  dout(10) << "sending beacon as gid " << monc.get_global_id() << dendl;

```

--------------------- Reproducing the Bug ----------------------

At face value, this issue is indeterministically reproducible since it
can depend on environmental factors or specific cluster workloads.
However, I was able to deterministically reproduce it by injecting a
bottleneck into the balancer module:
```
diff --git a/src/pybind/mgr/balancer/module.py b/src/pybind/mgr/balancer/module.py
index d12d69f..91c83fa8023 100644
--- a/src/pybind/mgr/balancer/module.py
+++ b/src/pybind/mgr/balancer/module.py
@@ -772,10 +772,10 @@ class Module(MgrModule):
                     self.update_pg_upmap_activity(plan)  # update pg activity in `balancer status detail`
                 self.optimizing = False
+                # causing a bottleneck
+                for i in range(0, 1000):
+                    for j in range (0, 1000):
+                        x = i + j
+                        self.log.debug("hitting the bottleneck in the balancer module")
             self.log.debug('Sleeping for %d', sleep_interval)
             self.event.wait(sleep_interval)
             self.event.clear()
```

Then, the error reproduces every time by running:
```
$ ./bin/ceph mgr fail; ./bin/ceph telemetry show
Error ENOTSUP: Warning: due to ceph-mgr restart, some PG states may not be up to date
Module 'telemetry' is not enabled/loaded (required by command 'telemetry show'): use `ceph mgr module enable telemetry` to enable it
```

With this fix, the active mgr is marked as "initialized" only after all
the modules have started up, and this error goes away. The command may
take a bit longer to execute depending on the extent of the delay.

---------------------- Integration Testing ---------------------

This commit adds a dev-only config that can inject a longer
loading time into the mgr module loading sequence so we can
simulate this scenario in a test.

The config is 0 ms by default since we do not add any delay
outside of testing scenarios. The config can be adjusted
with the following command:
  `ceph config set mgr mgr_module_load_delay <ms>`

A second dev-only config also allows you to specify which
module you want to be delayed in loading time. You may change
this with the following command:
  `ceph config set mgr mgr_module_load_delay_name <module name>`

The workunit added here tests a simulated slow loading module
scenario to ensure that this case is properly handled.

--------------------- Documentation --------------------

The new documentation describes the three existing mgr states so Ceph
operators can better interpret their Ceph status output.

Fixes: https://tracker.ceph.com/issues/71631
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit cbd1726fde08692848b5c0e42c06e4f089ebcd5c)

2 weeks agopybind/mgr: call new _ceph_exit for killpoints 68518/head
Patrick Donnelly [Tue, 3 Mar 2026 16:37:54 +0000 (11:37 -0500)]
pybind/mgr: call new _ceph_exit for killpoints

Fixes: https://tracker.ceph.com/issues/74605
Fixes: 78983ad0d0cce422da32dc4876ac186f6d32c3f5
Fixes: ceph/ceph.git#66244
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit b286ca57ad189dec421b6cd71a6f5b5e0327e401)

2 weeks agomgr: add ceph binding for exit
Patrick Donnelly [Tue, 3 Mar 2026 16:36:12 +0000 (11:36 -0500)]
mgr: add ceph binding for exit

So we can work around modules disabling calls to sys._exit

Fixes: https://tracker.ceph.com/issues/74605
Fixes: 78983ad0d0cce422da32dc4876ac186f6d32c3f5
Fixes: ceph/ceph.git#66244
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 378a21aa4076e536d17bb9c8ab749b12d9647174)