OrchestratorError stores errno as abs(), so e.errno is always positive.
Returning retval=e.errno (+22) caused the ceph CLI to exit 0 since it
only propagates the exit code when ret < 0.
NitzanMordhai [Tue, 3 Mar 2026 12:17:07 +0000 (12:17 +0000)]
mgr/dashboard: use __name__ for module-specific logging
Previously, using a hard-coded logger name like 'rgw_client' created
a top-level logger that bypassed the 'mgr.dashboard' hierarchy.
By switching to __name__, we ensure the logger identity follows the
package structure (e.g., 'mgr.dashboard.services.rgw_client').
Since propagate=True is enabled, this allows log records to flow
upward through the 'mgr' parent loggers, ensuring they are correctly
captured, formatted, and attributed to the dashboard module rather than
falling back to the root logger.
NitzanMordhai [Thu, 12 Feb 2026 09:13:41 +0000 (09:13 +0000)]
pybind/mgr/mgr_module: isolate logging per mgr module
After PR #66244, all mgr modules run inside the same Python interpreter.
That means they also share the same logging subsystem.
Previously, each module attached its handlers to the root logger. In practice,
whichever module initialized logging last effectively “owned” the root logger,
and log messages from other modules could end up attributed incorrectly.
This change scopes logging per module. Each module now registers its handlers
on a dedicated logger named after the module itself, with propagate=False to avoid
leaking messages into the root logger.
Now, the getLogger() default (no args) returns the module's named logger
rather than the root logger. This ensures self.log routes correctly.
Samuel Just [Fri, 7 Nov 2025 23:56:14 +0000 (23:56 +0000)]
mgr: add mgr_subinterpreter_modules config
This commit adds a mgr_subinterpreter_modules config to cause specified
modules (or all if * is specified) to be loaded in individual
subinterpreters.
This changes the default behavior of ceph-mgr from running each module
in a distinct subinterpreter to running them all in the same main
interpreter. We can reintroduce subinterpreter support over time by
adding modules to the list as we test them.
Fixes: https://tracker.ceph.com/issues/73857 Fixes: https://tracker.ceph.com/issues/73859 Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 239b0dc8a9c42449ee1faa1bf78bdcc380345ae2)
Conflicts:
- src/mgr/PyModule.cc
#include "common/JSONFormatter.h" - removed (missing commit 3ab70dd in tentacle), not in tentacle
dtor - still missing commit 3366ef5 on tentacle causing conflicts,
taking tentacle changes with use_main_interpreter and end the interpater pMyThreadState.ts
* refs/pull/67566/head:
mgr/dashboard: show rados ns in 'ceph nvmeof top io'
mgr/dashboard: validate args in nvmeof top cmds
src/pybind/mgr: Add nvmeof-top tool
Conflicts:
monitoring/ceph-mixin/dashboards_out/ceph-application-overview.json
- schema version different in tentacle (41)
- this commit was absent https://github.com/ceph/ceph/commit/6754d7a28fbf598468dd0a5d4792f177da239064 . It brings tags entries not defiend in tentacle
Aashish Sharma [Tue, 31 Mar 2026 04:30:23 +0000 (10:00 +0530)]
mgr/dashboard: Add option to edit zone with keys/
argument like"sync_from" and "sync_from_all"
Currently, there is no option to configure the sync_from and sync_from_all keys directly while creating or editing a zone from the dashboard. These arguments are particularly important when setting up archive zones. In archive zones, duplicate objects appear when sync_from_all is set to true (which is the default). The fix is to:
1.Set sync_from_all to false
2.Set sync_from to point to the master zone only
This ensures that the archive zone syncs exclusively from the master zone, preventing duplicate object issues.
Conflicts:
src/pybind/mgr/dashboard/frontend/src/styles.scss
- recent merged PRs added at the end of file more rules which were giving conflict with this commit as it also adds a rule in the end
* refs/pull/67839/head:
Fix conflicts
mgr/dashboard: Fix make check failures
Fix unit test
mgr/dashboard: Nvmeof gateway group should account for labels
mgr/dashboard: Persist labels and hosts in service form
mgr/dashboard: Fix service form to take into account labels
mgr/dashboard: Allow moving to next when Bidirectional mode is chosen
mgr/dashboard: Fix review page showing auth details when all hosts selected
mgr/dashboard: Validate no added hosts in second step
mgr/dashboard: Encryption key not being passed in gateway group form
mgr/dashboard: Allow creating nvmeof gateway group via new flow
mgr/dashboard: fix the missing injectors for child formgroup tpl
mgr/dashboard: fix-subsystem-loading-page-issue
mgr/dashboard: fix subsystem creation issue
mgr/dashboard: Breadcrumb should allow going back to subsystem tab
mgr/dashboard: Title says "Gateways" but it displays gateway group names in NVME/TCP
mgr/dashboard: fix-add-node-issue
mgr/dashboard: fix-nvmeof-subsystem-create-firefox-next
mgr/dashboard: mgr/dashboard: Namespace size should accept GiB in NVMe/TCP
mgr/dashboard: Footer actions shift upward instead of staying pinned at modal bottom in NVMe/TCP subsystem create wizard
mgr/dashboard: fix add host API path for namespace mapping in NVMe/TCP
mgr/dashboard: Initiator add shows success but host is not added/displayed in Subsystem Initiators table
mgr/dashboard: Use illustration image for empty state table
mgr/dashboard: Fix auth logic in subsystem and remove traffic encryption columns
mgr/dashboard: Allow adding authentication to subsystem flow
mgr/dashboard: Remove tabs under subsystem
mgr/dashboard: add-reviewstep-in-subsystem
mgr/dashboard: NVme- Add namespace in subsystem resource page
mgr/dashboard: NVmeof Add listeners in subsytem and resource page.
mgr/dashboard: Nvmeof add hosts(Add Initiator) in subsystem details
mgr/dashboard: Remove tabs under subsystem
mgr/dashboard: Nvmeof edit namespace size
mgr/dashboard: create-namespace
mgr/dashboard: Fix remove host in subsystem resource page
mgr/dashboard: Add apis for add/del hosts on namespaces
mgr/dashboard: Fix nvmeof edit host key in subsystem resources page
mgr/dashboard: NVMe – Fix host,listeners namespace list display on Subsystem resource page
mgr/dashboard: Fix nvmeof namespace list and delete modal
mgr/dashboard: delete-gateway-nodes
mgr/dashboard: use gray10 theme colors
mgr/dashboard: add-gateway-nodes
mgr/dashboard: NVme-gateway-resource
mgr/dashboard: Add step two of subsystem create form
mgr/dashboard: Step three subsystem creation form
mgr/dashboard: Add step 1 for subsystem form
mgr/dashboard: NVme- Delete Subsystem
mgr/dashboard: NVme-Subsystem list
mgr/dashboard: remove trailing space from directory name
mgr/dashboard: NVMeof-Create Gatway group Form
mgr/dashboard: NVme-Delete Gateway group
'mgr/dashboard: Carbonize Block Module > NVme-Listing Gateway group
Gil Bregman [Tue, 5 May 2026 08:53:25 +0000 (11:53 +0300)]
mgr/dashboard: Allow empty port value when adding a listener in NVMEoF CLI Fixes: https://tracker.ceph.com/issues/76410 Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
(cherry picked from commit 92237ee48467c7a2d03772592194cc059699ed63)
Alex Ainscow [Mon, 27 Apr 2026 16:46:40 +0000 (17:46 +0100)]
osd: Avoid assertion on empty object read when reading multiple objects
Tracker 75432 hits an assert which is attempting to protect the system
against hanging, due to generating a read request which sends no messages.
The assert fired because recovery was attempting to read multiple objects
in a single read request. One object did not require any further shard
reads in order to recover, while the other did. The consequence is that
the assert fired on one of the objects.
The problem is simply that the assert is in the wrong place.
* refs/pull/68663/head:
os/bluestore: Fix collect_alerts
os/bluestore: extblkdev related health warnings
extblkdev/fcm: Replace errors with health warning
extblkdev/fcm: Cleanup
extblkdev: Fix preload
blk/extblkdev: Health warns from ExtBlkDev plugins
blk: Expand collect_alerts to allow specialization
blk,os/bluestore: do not call extblkdev::detect_device on every
extblkdev/fcm: Add plugin identification for fcm
extblkdev/fcm: Do not enable set_keepcaps by default
extblkdev/fcm: Change douts/derrs
extblkdev/fcm: Create perf counters with fcm stats
fixup warning of fcm plugin core
extblkdev/fcm: derr when FCM and no block device discard
extblkdev/fcm: Refuse to operate on multimedia lvm block devices
extblkdev/fcm: Adapt FCM plugin to RHCS9
added FCM plugin
os/bluestore: Make extblkdev missing a warning
extblkdev: Make preload one-time function
os/bluestore: Add config bluestore_use_ebd
extblkdev: Expand interface, add plugin id retrieval
Adam Kupczyk [Thu, 16 Apr 2026 09:25:19 +0000 (09:25 +0000)]
extblkdev/fcm: Replace errors with health warning
Now plugin does not assert or fail to load,
but instead raises following health warnings:
EXTBLKDEV: multivolume fcm will not work properly
EXTBLKDEV: failed accessing FCM utilization log
EXTBLKDEV: bdev_enable_discard not enabled - free space will leak
Adam Kupczyk [Tue, 14 Apr 2026 17:57:42 +0000 (17:57 +0000)]
blk: Expand collect_alerts to allow specialization
Previously we had BlockDevice::collect_alerts that had fixed
implementation.
Expanded BlockDevice::collect_alerts into virtual, so KernelDevice can
override it.
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.
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
* 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>
* 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
Bill Scales [Fri, 6 Feb 2026 17:22:29 +0000 (17:22 +0000)]
osd: Avoid pwlc spanning intervals
Prevent the first write to FastEC in each interval from being
a partial write to avoid the span of partial writes tracked by
pwlc from spanning intervals. This stops bugs such as 73891
where a divergent write was not removed from the log because
pwlc recorded that the shard had not participated in writes
before and after the divergent write.
Fixes: https://tracker.ceph.com/issues/73891 Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
(cherry picked from commit dc0a195b937eb175cf663d48a856f486435e987f)
Conflicts:
src/osd/ECBackend.cc
- change assert to ceph_assert
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"
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
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
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
Gil Bregman [Mon, 6 Apr 2026 22:08:15 +0000 (01:08 +0300)]
mgr/dashboard: Add namespace encryption support to NVMeoF CLI. Fixes: https://tracker.ceph.com/issues/74965 Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
(cherry picked from commit 0063491fa2d71419a67e184bd04974c7833eb9f0) Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
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