]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
2 days agotest/neorados: Don't leak watch handle wip-neorados-watch-notify
Adam C. Emerson [Wed, 26 Nov 2025 05:59:35 +0000 (00:59 -0500)]
test/neorados: Don't leak watch handle

Add missing unwatch call.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2 days agoneorados: Avoid double cleanup in watch/notify
Adam C. Emerson [Wed, 26 Nov 2025 05:59:13 +0000 (00:59 -0500)]
neorados: Avoid double cleanup in watch/notify

An error coming in after `maybe_cleanup()` is called could trigger it
again. Add a flag to prevent that.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2 days agoneorados: On watch error, go through safe cookie interface to cancel
Adam C. Emerson [Wed, 26 Nov 2025 05:54:55 +0000 (00:54 -0500)]
neorados: On watch error, go through safe cookie interface to cancel

Possibly unnecessary defensive programming. At present I'm not sure of
a way this could happen, possibly shutdown while `watch_()` is
executing. In any case, adding a lookup to the error path isn't really
a problem.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2 days agoneorados: Actually enforce notification queue limit
Adam C. Emerson [Wed, 26 Nov 2025 05:54:21 +0000 (00:54 -0500)]
neorados: Actually enforce notification queue limit

We were adding an overflow marker on every message above capacity, not
just the first, vitiating the purpose of the bound. The shame, the
shame.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2 days agoneorados: Do not try to decode an empty response in notify
Adam C. Emerson [Wed, 26 Nov 2025 03:15:13 +0000 (22:15 -0500)]
neorados: Do not try to decode an empty response in notify

The response can be empty on some errors. Attempting to decode an
empty one loses the error value on valid errors.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2 days agoneorados: Go through linger_cancel on `io_context` shutdown
Adam C. Emerson [Wed, 26 Nov 2025 02:54:58 +0000 (21:54 -0500)]
neorados: Go through linger_cancel on `io_context` shutdown

Rather than just dropping the reference, clean up the linger operation
properly within Objecter. Also, clear out handlers before
relinquishing reference to avoid use-after-free.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 days agoMerge pull request #66539 from ceph/GHSA-8v8w-v8xg-79rf
David Galloway [Fri, 5 Dec 2025 16:49:41 +0000 (11:49 -0500)]
Merge pull request #66539 from ceph/GHSA-8v8w-v8xg-79rf

.github: Harden workflow against arbritrary code injection

3 days ago.github: Harden workflow against arbritrary code injection
David Galloway [Fri, 5 Dec 2025 16:23:27 +0000 (11:23 -0500)]
.github: Harden workflow against arbritrary code injection

See https://github.com/tj-actions/branch-names/security/advisories/GHSA-8v8w-v8xg-79rf

Signed-off-by: David Galloway <david.galloway@ibm.com>
3 days agoMerge pull request #66505 from tchaikov/mgr-dont-fail-sans-notify-types
Kefu Chai [Fri, 5 Dec 2025 14:49:50 +0000 (22:49 +0800)]
Merge pull request #66505 from tchaikov/mgr-dont-fail-sans-notify-types

mgr/PyModule: clear Python exception when NOTIFY_TYPES is missing

Reviewed-by: John Mulligan <jmulligan@redhat.com>
3 days agoMerge pull request #57263 from mchangir/mgr-snap_schedule-restrict-retention-period...
Venky Shankar [Fri, 5 Dec 2025 10:39:05 +0000 (16:09 +0530)]
Merge pull request #57263 from mchangir/mgr-snap_schedule-restrict-retention-period-multiplier-set

mgr/snap_schedule: restrict retention period multipliers set

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 days agoMerge pull request #65960 from dparmar18/i73550
Venky Shankar [Fri, 5 Dec 2025 10:38:16 +0000 (16:08 +0530)]
Merge pull request #65960 from dparmar18/i73550

mds: update older versioned sr_t struct(s) to incorporate snapshot visibility flag

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 days agoMerge pull request #66180 from vshankar/wip-66003
Venky Shankar [Fri, 5 Dec 2025 10:35:15 +0000 (16:05 +0530)]
Merge pull request #66180 from vshankar/wip-66003

mds: session reclaim could miss blocklisting an old session

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
3 days agoMerge PR #66030 into main
Venky Shankar [Fri, 5 Dec 2025 10:33:12 +0000 (16:03 +0530)]
Merge PR #66030 into main

* refs/pull/66030/head:

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
3 days agoMerge pull request #66199 from batrick/i73792
Venky Shankar [Fri, 5 Dec 2025 10:31:10 +0000 (16:01 +0530)]
Merge pull request #66199 from batrick/i73792

common/frag: properly convert frag_t to net/store endianness

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 days agoMerge pull request #66337 from NitzanMordhai/wip-nitzan-test-encode-update-versions
SrinivasaBharathKanta [Fri, 5 Dec 2025 00:09:54 +0000 (05:39 +0530)]
Merge pull request #66337 from NitzanMordhai/wip-nitzan-test-encode-update-versions

qa/suite/rados/encoder: update release N-2 for ceph-dencoder tests

3 days agoMerge pull request #66487 from cbodley/wip-74067
Casey Bodley [Thu, 4 Dec 2025 21:47:15 +0000 (16:47 -0500)]
Merge pull request #66487 from cbodley/wip-74067

rgw/rados: fix init/shutdown order for RGWIndexCompletionManager

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Adam Emerson <aemerson@redhat.com>
3 days agoMerge pull request #66042 from sungjoon-koh/fix-cksum-part-get
Casey Bodley [Thu, 4 Dec 2025 19:12:31 +0000 (14:12 -0500)]
Merge pull request #66042 from sungjoon-koh/fix-cksum-part-get

rgw: fix checksum for get part request

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
3 days agoMerge pull request #65194 from sungjoon-koh/get-object-part-etag
Casey Bodley [Thu, 4 Dec 2025 19:12:00 +0000 (14:12 -0500)]
Merge pull request #65194 from sungjoon-koh/get-object-part-etag

rgw: fix GetObject ETag with part number parameter

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 days agoMerge pull request #66406 from Matan-B/wip-matanb-crimson-seastore-txn-logs
Matan Breizman [Thu, 4 Dec 2025 10:37:31 +0000 (12:37 +0200)]
Merge pull request #66406 from Matan-B/wip-matanb-crimson-seastore-txn-logs

crimson/os/seastore: fix do_transaction_no_callbacks logs

Reviewed-by: Samuel Just <sjust@redhat.com>
4 days agoMerge pull request #64222 from tchaikov/wip-ec-log
Kefu Chai [Thu, 4 Dec 2025 10:33:03 +0000 (18:33 +0800)]
Merge pull request #64222 from tchaikov/wip-ec-log

common/plugin: fix spacing in plugin load error message

Reviewed-by: Matan Breizman <mbreizma@ibm.com>
4 days agoMerge pull request #66478 from rhcs-dashboard/rename-alert-tab
Afreen Misbah [Thu, 4 Dec 2025 10:19:25 +0000 (15:49 +0530)]
Merge pull request #66478 from rhcs-dashboard/rename-alert-tab

mgr/dashboard: Rename Alerts tab to All Alerts

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 days agomgr/PyModule: clear Python exception when NOTIFY_TYPES is missing
Kefu Chai [Thu, 4 Dec 2025 08:05:27 +0000 (16:05 +0800)]
mgr/PyModule: clear Python exception when NOTIFY_TYPES is missing

Commit 4589c4d8ac5 ("mgr: do not require NOTIFY_TYPES in python modules")
changed load_notify_types() to treat missing NOTIFY_TYPES as non-fatal,
but failed to clear the Python exception state set by PyObject_GetAttrString().

When PyObject_GetAttrString() fails to find an attribute, it:
1. Returns nullptr
2. Sets AttributeError in the interpreter's exception state

The exception state persists across subsequent Python C API calls until
explicitly cleared. This causes unrelated operations to fail with misleading
error messages.

Bug Manifestation:
------------------
In PyModule::load() (line 292), the call sequence is:

1. load_subclass_of("MgrModule", &pClass) - succeeds
2. load_notify_types() - sets AttributeError but returns 0 (success)
3. load_subclass_of("MgrStandbyModule", &pStandbyClass) - FAILS

The failure occurs because PyImport_ImportModule() at line 658 checks
PyErr_Occurred() before operating. When it detects the pending AttributeError
from step 2, it refuses to import and returns NULL immediately.

This causes load_subclass_of() to report:
```
  1 mgr[py] Loading python module 'balancer'
 -1 mgr[py] Module balancer has missing NOTIFY_TYPES member
 -1 mgr[py] Module not found: 'mgr_module'
 -1 mgr[py] AttributeError: type object 'Module' has no attribute 'NOTIFY_TYPES'
```

This error is misleading - mgr_module exists and is importable, but the
import fails due to the uncleared exception from an unrelated operation.

Without this fix, modules without NOTIFY_TYPES may fail to load their
standby class, or cause subsequent module loads to fail entirely with
confusing error messages pointing to the wrong module.

Fix:
----
This patch follows Python's EAFP (Easier to Ask for Forgiveness than
Permission) philosophy by attempting the attribute access and handling the
expected AttributeError, rather than checking preconditions with
PyObject_HasAttrString() (LBYL approach). The EAFP approach:

- Is more pythonic and idiomatic
- Requires only one API call instead of two (more efficient)
- Properly distinguishes expected errors (AttributeError) from unexpected
  errors (e.g., interpreter shutdown, memory errors)
- Handles unexpected errors appropriately by reporting and returning -EINVAL

Implementation:
- Use PyErr_ExceptionMatches() to check for expected AttributeError
- Clear expected exception with PyErr_Clear()
- Report unexpected exceptions via handle_pyerror()

Refs: 4589c4d8ac5 ("mgr: do not require NOTIFY_TYPES in python modules")
Refs: https://tracker.ceph.com/issues/55835
Fixes: https://tracker.ceph.com/issues/70789
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
5 days agoMerge pull request #65274 from ifed01/wip-ifed-more-max-lat
Igor Fedotov [Wed, 3 Dec 2025 14:46:08 +0000 (17:46 +0300)]
Merge pull request #65274 from ifed01/wip-ifed-more-max-lat

os/bluestore: track max latencies for key bluestore/bluefs perf counters

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
5 days agomgr/dashboard: Rename Alerts tab to All Alerts
Sagar Gopale [Tue, 2 Dec 2025 12:54:46 +0000 (18:24 +0530)]
mgr/dashboard: Rename Alerts tab to All Alerts

Fixes: https://tracker.ceph.com/issues/74051
Signed-off-by: Sagar Gopale <sagar.gopale@ibm.com>
5 days agoMerge pull request #66453 from aainscow/lrc_fix
NitzanMordhai [Wed, 3 Dec 2025 09:55:59 +0000 (11:55 +0200)]
Merge pull request #66453 from aainscow/lrc_fix

osd: Perform shard look up correctly in partial EC writes

5 days agoMerge pull request #66384 from bill-scales/issue72879
NitzanMordhai [Wed, 3 Dec 2025 09:54:19 +0000 (11:54 +0200)]
Merge pull request #66384 from bill-scales/issue72879

Fix teuthology timeout issues with bluestore software compression and improve thread heartbeat timeout code

5 days agoMerge PR #66093 into main
Venky Shankar [Wed, 3 Dec 2025 06:40:18 +0000 (12:10 +0530)]
Merge PR #66093 into main

* refs/pull/66093/head:

Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
Reviewed-by: Shwetha Acharya <sacharya@redhat.com>
5 days agorgw/rados: fix init/shutdown order for RGWIndexCompletionManager wip-74067
Casey Bodley [Tue, 2 Dec 2025 21:19:05 +0000 (16:19 -0500)]
rgw/rados: fix init/shutdown order for RGWIndexCompletionManager

RGWRados::init_complete() initializes this RGWIndexCompletionManager
after starting some background threads that depend on it, like RGWLC and
RGWDataSyncProcessorThread and RGWObjectExpirer. this can lead to a
crash when accessing a null index_completion_manager

RGWRados::finalize() deletes it before stopping the Restore thread

Fixes: https://tracker.ceph.com/issues/74067
Reported-by: J. Eric Ivancich <ivancich@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
6 days agoinclude: detect corrupt frag from byteswap
Patrick Donnelly [Thu, 13 Nov 2025 19:51:20 +0000 (14:51 -0500)]
include: detect corrupt frag from byteswap

If a big-endian MDS writes frag_t values into the metadata pool, these
will persist and confuse the MDS after it tries properly parsing them as
little-endian. Fortunately detecting this situation is fairly easy as we
restrict the number of bits and the number of bits restricts the mask
value.

Fixes: https://tracker.ceph.com/issues/73792
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agotest/encoding: print context on diff failure
Patrick Donnelly [Tue, 2 Dec 2025 02:08:22 +0000 (21:08 -0500)]
test/encoding: print context on diff failure

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agomds: dump frag_t as an object
Patrick Donnelly [Mon, 1 Dec 2025 20:12:37 +0000 (15:12 -0500)]
mds: dump frag_t as an object

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agocommon/frag: produce valid fragments for test instances
Patrick Donnelly [Mon, 1 Dec 2025 20:12:16 +0000 (15:12 -0500)]
common/frag: produce valid fragments for test instances

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agocommon: simplify fragment printing
Patrick Donnelly [Thu, 13 Nov 2025 19:47:24 +0000 (14:47 -0500)]
common: simplify fragment printing

There's better tooling for this now and we can avoid magic numbers.

Fixes: https://tracker.ceph.com/issues/73792
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agocommon: properly convert frag_t to net/store endianness
Patrick Donnelly [Tue, 11 Nov 2025 15:15:03 +0000 (10:15 -0500)]
common: properly convert frag_t to net/store endianness

The MDS/client are already accidentally doing the right thing unless
they are running on a big-endian machine.

Credit to Venky Shankar for originally hypothesizing an endianness issue
with the frag_t.

Fixes: https://tracker.ceph.com/issues/73792
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agomds: include sysinfo in status command output
Patrick Donnelly [Thu, 13 Nov 2025 14:24:19 +0000 (09:24 -0500)]
mds: include sysinfo in status command output

Of particular interest is the CPU architecture and endianness.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 days agoMerge pull request #65390 from mohit84/stuck_peering
SrinivasaBharathKanta [Tue, 2 Dec 2025 14:04:13 +0000 (19:34 +0530)]
Merge pull request #65390 from mohit84/stuck_peering

mon: Avoid false stuck peering warning

6 days agoMerge pull request #65245 from NitzanMordhai/wip-nitzan-mgr-api-refcount-memory-leak...
NitzanMordhai [Tue, 2 Dec 2025 13:31:12 +0000 (15:31 +0200)]
Merge pull request #65245 from NitzanMordhai/wip-nitzan-mgr-api-refcount-memory-leak-fixes

mgr: fix PyObject* refcounting in TTLCache and cleanup logic

6 days agocrimson/os/seastore: fix do_transaction_no_callbacks logs
Matan Breizman [Tue, 25 Nov 2025 10:50:43 +0000 (10:50 +0000)]
crimson/os/seastore: fix do_transaction_no_callbacks logs

See: https://tracker.ceph.com/issues/73978#note-1

errors in do_transaction_no_callbacks fail with vague abort message
showing only the transaction dump.
Instead, add meaningful abort message with the actual error and method.

This could be replaced by assert_all_func, though we would likely
rewrite this method soon.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
6 days agoMerge pull request #65900 from nbalacha/wip-nbalacha-71365
Yuval Lifshitz [Tue, 2 Dec 2025 12:34:09 +0000 (14:34 +0200)]
Merge pull request #65900 from nbalacha/wip-nbalacha-71365

rgw/bucket-logging: support EC pools

6 days agoMerge pull request #66339 from rhcs-dashboard/cephfs-mirror-list-endpoint
Pedro Gonzalez Gomez [Tue, 2 Dec 2025 11:28:31 +0000 (12:28 +0100)]
Merge pull request #66339 from rhcs-dashboard/cephfs-mirror-list-endpoint

mgr/dashboard: add GET endpoints for CephFS mirror peers

Reviewed-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
6 days agoMerge pull request #66461 from imran-imtiaz/dashboard
Imran Imtiaz [Tue, 2 Dec 2025 09:59:59 +0000 (09:59 +0000)]
Merge pull request #66461 from imran-imtiaz/dashboard

mgr/dashboard: add API endpoint to delete images from consistency groups

6 days agomgr/TTLCache: fix PyObject* lifetime management and cleanup logic
Nitzan Mordechai [Tue, 26 Aug 2025 14:30:12 +0000 (14:30 +0000)]
mgr/TTLCache: fix PyObject* lifetime management and cleanup logic

Fix incorrect reference counting and memory retention behavior in TTLCache
when storing PyObject* values.
Previously, TTLCache::insert did not increment the reference count,
and `erase` / `clear` did not correctly decref the values, leading
to use-after-free or leaks depending on usage.

Changes:
- Move Py_INCREF from cacheable_get_python() to TTLCache::insert()
- Add `TTLCache::clear()` method for proper memory cleanup
- Ensure TTLCache::get() returns a new reference
- Fix misuse of std::move on c_str() in PyJSONFormatter

These changes prevent both memory leaks and use-after-free errors when
mgr modules use cached Python objects logic.

Fixes: https://tracker.ceph.com/issues/68989
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
6 days agomgr/prometheus: prune stale health checks, compress output
Nitzan Mordechai [Wed, 20 Aug 2025 14:50:40 +0000 (14:50 +0000)]
mgr/prometheus: prune stale health checks, compress output

This patch introduces several improvements to the Prometheus module:

 - Introduces `HealthHistory._prune()` to drop stale and inactive health checks.
  Limits the in-memory healthcheck dict to a configurable max_entries (default 1000).
  TTL for stale entries is configurable via `healthcheck_history_stale_ttl` (default 3600s).

 - Refactors HealthHistory.check() to use a unified iteration over known and current checks,
  improving concurrency and minimizing redundant updates.

 - Use cherrypy.tools.gzip instead of manual gzip.compress() for cleaner
  HTTP compression with proper header handling and client negotiation.

 - Introduces new module options:
    - `healthcheck_history_max_entries`

 - Add proper error handling for CherryPy engine startup failures
 - Remove os._exit monkey patch in favor of proper exception handling
 - Remove manual Content-Type header setting (CherryPy handles automatically)

Fixes: https://tracker.ceph.com/issues/68989
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
6 days agoMerge pull request #66440 from tchaikov/wip-avoid-odr
Kefu Chai [Tue, 2 Dec 2025 04:46:55 +0000 (12:46 +0800)]
Merge pull request #66440 from tchaikov/wip-avoid-odr

osd: fix ODR violation in max_prio_map

Reviewed-by: Matan Breizman <mbreizma@ibm.com>
6 days agoMerge PR #66328 into main
Patrick Donnelly [Tue, 2 Dec 2025 02:13:41 +0000 (21:13 -0500)]
Merge PR #66328 into main

* refs/pull/66328/head:
mon/HealthMonitor: avoid MON_DOWN for freshly added Monitor
mon: add time_added to mon_info_t
common/options: add missing runtime flag
mon/MonMap: cleanup initialization

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
6 days agoMerge pull request #66462 from cbodley/wip-cmake-breakpad-arch2
Casey Bodley [Mon, 1 Dec 2025 21:22:30 +0000 (16:22 -0500)]
Merge pull request #66462 from cbodley/wip-cmake-breakpad-arch2

cmake: fix for -DWITH_BREAKPAD=OFF

Reviewed-by: Joseph Mundackal <jmundackal@bloomberg.net>
6 days agoMerge pull request #66431 from cbodley/wip-doc-release-os-recommendations
Ilya Dryomov [Mon, 1 Dec 2025 19:05:43 +0000 (20:05 +0100)]
Merge pull request #66431 from cbodley/wip-doc-release-os-recommendations

doc: add Tentacle to os recommendations

Reviewed-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
6 days agoqa: test subvolume snapshot visibility flag post upgrade
Dhairya Parmar [Fri, 14 Nov 2025 12:40:24 +0000 (18:10 +0530)]
qa: test subvolume snapshot visibility flag post upgrade

the default flag value should return 1

Fixes: https://tracker.ceph.com/issues/73550
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
6 days agomds: update older versioned sr_t struct(s) to incorporate snapshot visibility flag
Dhairya Parmar [Wed, 15 Oct 2025 11:43:27 +0000 (17:13 +0530)]
mds: update older versioned sr_t struct(s) to incorporate snapshot visibility flag

- If there is cluster upgrade, the older sr_t structs' flags would not have the
SNAPSHOT_VISIBILITY flag bit set which means the existing subvolumes would
report 0 instead of 1 for the vxattr ceph.dir.subvolume.snaps.visible which
although doesn't lead to any actual denial of access to subvolume snapshots
since the client config to respect snapshot visibility is set to false as
default but might come as a surprise to any cluster operator if the client
config is toggled to true to see the snapshot visibility being denied(since the
`flags` is reporting to be 0). So, change the in-memory flags while decoding
the sr_t members.
- bump up struct_v to 8 while encoding and while decoding, for all the structs older
than 8 be assigned SNAPSHOT_VISIBILITY flag in-memory accordingly.

Fixes: https://tracker.ceph.com/issues/73550
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
6 days agodoc: remove redundant note about tested container hosts
Casey Bodley [Mon, 1 Dec 2025 17:53:59 +0000 (12:53 -0500)]
doc: remove redundant note about tested container hosts

Signed-off-by: Casey Bodley <cbodley@redhat.com>
6 days agodoc: remove old distros from os recommendations
Casey Bodley [Mon, 1 Dec 2025 17:53:42 +0000 (12:53 -0500)]
doc: remove old distros from os recommendations

Signed-off-by: Casey Bodley <cbodley@redhat.com>
7 days agocmake: fix for -DWITH_BREAKPAD=OFF wip-cmake-breakpad-arch2
Casey Bodley [Mon, 1 Dec 2025 15:25:16 +0000 (10:25 -0500)]
cmake: fix for -DWITH_BREAKPAD=OFF

in 1ba55a20be1023c585ba96617dc6a9d2aa79a51b, i tried to avoid the NOT
condition by swapping the option's defaults. but when the condition is
false, the option is forced to ON even if the user manually set it OFF

fix this by inverting the condition and swapping the default values

Reported-by: Joseph Mundackal <joseph.j.mundackal@gmail.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
7 days agoMerge pull request #63794 from clwluvw/enc-copy
Casey Bodley [Mon, 1 Dec 2025 15:33:11 +0000 (10:33 -0500)]
Merge pull request #63794 from clwluvw/enc-copy

rgw: implement CopyObject for encrypted objects

Reviewed-by: Casey Bodley <cbodley@redhat.com>
7 days agomgr/dashboard: add API endpoint to delete images from consistency groups
Imran Imtiaz [Mon, 1 Dec 2025 14:25:07 +0000 (14:25 +0000)]
mgr/dashboard: add API endpoint to delete images from consistency groups

Signed-off-by: Imran Imtiaz <imran.imtiaz@uk.ibm.com>
Fixes: https://tracker.ceph.com/issues/74033
Create a consistency group dashboard API endpoint that enables removal
of RBD images from the group.

7 days agoMerge pull request #66410 from aclamk/aclamk-encode-fix-debug-macro
Adam Kupczyk [Mon, 1 Dec 2025 14:09:05 +0000 (15:09 +0100)]
Merge pull request #66410 from aclamk/aclamk-encode-fix-debug-macro

encode: Fix bad use of DENC_DUMP_PRE

7 days agoosd: fix ODR violation in max_prio_map
Kefu Chai [Thu, 27 Nov 2025 12:28:31 +0000 (20:28 +0800)]
osd: fix ODR violation in max_prio_map

The static std::map max_prio_map was defined in the osd_types.h header
file, causing every translation unit that included this header to get
its own copy of the variable. This led to One Definition Rule (ODR)
violations where multiple instances of the same variable existed at
runtime.

During program cleanup, destructors for these multiple instances would
attempt to free the same memory regions, resulting in segmentation
faults in tcmalloc/memory allocator as seen with ceph-dencoder.

This issue surfaced after a yet-merged-change which converts erasure_code
and json_spirit to OBJECT libraries. Before that change, these were
STATIC libraries that were linked via target_link_libraries. The
incorrect linkage meant their object files (and thus their copies of
max_prio_map) were kept separate and didn't conflict at runtime.

After converting to OBJECT libraries and properly incorporating them
into libceph-common.so (commit 8b0e3fb2c23), the multiple copies of
max_prio_map from different translation units all ended up in the same
shared library, exposing the ODR violation. During program exit, the
dynamic linker attempted to run destructors for all instances, leading
to double-free crashes.

Fix by moving the map into a static helper function in PeeringState.cc
(the only file that uses it). The map is now a function-local static
const variable, ensuring a single instance that is properly initialized
and destructed.

Backtrace before fix:
```
    #0  0x00007ffff7dbb1a0 in tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned int, int) () from /lib/x86_64-linux-gnu/libtcmalloc.so.4
    #1  0x00007ffff7dbb57f in tcmalloc::ThreadCache::Scavenge() () from /lib/x86_64-linux-gnu/libtcmalloc.so.4
    #2  0x00007ffff6bc8aa2 in std::__new_allocator<std::_Rb_tree_node<std::pair<int const, int> > >::deallocate (this=0x7ffff7d48f78 <max_prio_map>, __p=0x555555f43890, __n=1)
    #3  0x00007ffff6bc89f9 in std::allocator<std::_Rb_tree_node<std::pair<int const, int> > >::deallocate (this=0x7ffff7d48f78 <max_prio_map>, __p=0x555555f43890, __n=1)
    #4  std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, int> > > >::deallocate (__a=..., __p=0x555555f43890, __n=1)
    #5  std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_put_node (this=0x7ffff7d48f78 <max_prio_map>, __p=0x555555f43890)
    #6  0x00007ffff6bc892e in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_drop_node (this=0x7ffff7d48f78 <max_prio_map>, __p=0x555555f43890)
    #7  0x00007ffff6bc886e in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_erase (this=0x7ffff7d48f78 <max_prio_map>, __x=0x555555f43890)
    #8  0x00007ffff6bc8854 in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_erase (this=0x7ffff7d48f78 <max_prio_map>, __x=0x555555f43cb0)
    #9  0x00007ffff6bc8854 in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_erase (this=0x7ffff7d48f78 <max_prio_map>, __x=0x555555f43ad0)
    #10 0x00007ffff6bc8805 in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::~_Rb_tree (this=0x7ffff7d48f78 <max_prio_map>)
    #11 0x00007ffff6bc7345 in std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::~map (this=0x7ffff7d48f78 <max_prio_map>)
    #12 0x00007ffff484bd51 in __cxa_finalize (d=0x7ffff7d3f440) at ./stdlib/cxa_finalize.c:97
    #13 0x00007ffff6af9487 in __do_global_dtors_aux () from /home/kefu/dev/ceph/build/lib/libceph-common.so.2
    #14 0x00007ffff7fbfd20 in ?? ()
    #15 0x00007ffff7fc8fc2 in _dl_call_fini (closure_map=0x7fffffffd0f0, closure_map@entry=0x7ffff7fbfd20) at ./elf/dl-call_fini.c:43
    #16 0x00007ffff7fcbe72 in _dl_fini () at ./elf/dl-fini.c:120
    #17 0x00007ffff484c291 in __run_exit_handlers (status=0, listp=0x7ffff49f1680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:118
    #18 0x00007ffff484c35a in __GI_exit (status=<optimized out>) at ./stdlib/exit.c:148
    #19 0x00007ffff4833caf in __libc_start_call_main (main=main@entry=0x55555556cd90 <main(int, char const**)>, argc=argc@entry=2, argv=argv@entry=0x7fffffffd488) at ../sysdeps/nptl/libc_start_call_main.h:74
    #20 0x00007ffff4833d65 in __libc_start_main_impl (main=0x55555556cd90 <main(int, char const**)>, argc=2, argv=0x7fffffffd488, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd478) at ../csu/libc-start.c:360
    #21 0x00005555555695e1 in _start ()
```

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
7 days agoMerge pull request #66407 from rhcs-dashboard/redirect-other-propery-name
Nizamudeen A [Mon, 1 Dec 2025 12:35:39 +0000 (18:05 +0530)]
Merge pull request #66407 from rhcs-dashboard/redirect-other-propery-name

mgr/dashboard: support custom prop for table item redirection

Reviewed-by: Afreen Misbah <afreen@ibm.com>
7 days agotest/rgw/logging: run teuthology on erasure coded pool
Nithya Balachandran [Mon, 1 Dec 2025 12:35:06 +0000 (12:35 +0000)]
test/rgw/logging: run teuthology on erasure coded pool

Run the rgw bucket logging teuthology tests on an erasure coded pool.

Signed-off-by: Nithya Balachandran <nithya.balachandran@ibm.com>
7 days agorgw/bucket-logging: support for EC pools
Nithya Balachandran [Thu, 27 Nov 2025 12:03:36 +0000 (12:03 +0000)]
rgw/bucket-logging: support for EC pools

Log buckets can now be created within erasure-coded (EC) pools.
To support append operations, a temporary log record object is initially
created in the replicated default.rgw.log pool. This object is then copied
to the EC pool upon log record commitment.
All implicit log commit operations will execute asynchronously. A new
BucketLoggingManager class is responsible for processing these pending
commits at set intervals. Explicit commit operations, however, will
continue to be performed synchronously.

Fixes: https://tracker.ceph.com/issues/71365
Signed-off-by: Nithya Balachandran <nithya.balachandran@ibm.com>
7 days agoMerge pull request #66437 from rhcs-dashboard/fix-74008-main
afreen23 [Mon, 1 Dec 2025 11:56:07 +0000 (17:26 +0530)]
Merge pull request #66437 from rhcs-dashboard/fix-74008-main

mgr/dashboard: fix multi-cluster route reload logic

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
7 days agoMerge pull request #66346 from rhcs-dashboard/fix-service-form
afreen23 [Mon, 1 Dec 2025 11:54:04 +0000 (17:24 +0530)]
Merge pull request #66346 from rhcs-dashboard/fix-service-form

mgr/dashboard: service creation fails if service name is same as sevice type

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
7 days agoMerge pull request #66436 from rhcs-dashboard/add-sagar--to-mailmap-githubmap-organiz...
afreen23 [Mon, 1 Dec 2025 09:29:57 +0000 (14:59 +0530)]
Merge pull request #66436 from rhcs-dashboard/add-sagar--to-mailmap-githubmap-organizationmap

add Sagar Gopale to githubmap mailmap organizationmap

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Abhishek Desai <abhishek.desai1@ibm.com>
7 days agoMerge pull request #65433 from mohit84/repeer_on_acting
SrinivasaBharathKanta [Mon, 1 Dec 2025 09:27:14 +0000 (14:57 +0530)]
Merge pull request #65433 from mohit84/repeer_on_acting

test: repeer_on_down_acting_member_coming_back is continuously failing

7 days agoMerge pull request #66417 from rhcs-dashboard/fix-server-sort
Nizamudeen A [Mon, 1 Dec 2025 08:27:19 +0000 (13:57 +0530)]
Merge pull request #66417 from rhcs-dashboard/fix-server-sort

mgr/dashboard: fix server side table sort

Reviewed-by: Afreen Misbah <afreen@ibm.com>
7 days agoMerge pull request #66375 from ronen-fr/wip-rf-eofread
Ronen Friedman [Mon, 1 Dec 2025 07:31:58 +0000 (09:31 +0200)]
Merge pull request #66375 from ronen-fr/wip-rf-eofread

osd/scrub: do not attempt to read past the end of an object

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Alex Ainscow <aainscow@uk.ibm.com>
7 days agomgr/dashboard: support custom prop for table item redirection
Nizamudeen A [Tue, 25 Nov 2025 11:31:31 +0000 (17:01 +0530)]
mgr/dashboard: support custom prop for table item redirection

use an extra customTemplateConfig called `customRowProperty` where
you can provide the key of the property you wish to route, instead of
relying on the cell's prop itself

Fixes: https://tracker.ceph.com/issues/73989
Signed-off-by: Nizamudeen A <nia@redhat.com>
7 days agoMerge pull request #66330 from rhcs-dashboard/edit-realm
Nizamudeen A [Mon, 1 Dec 2025 07:27:16 +0000 (12:57 +0530)]
Merge pull request #66330 from rhcs-dashboard/edit-realm

mgr/dashboard: edit realm modal not working

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Afreen Misbah <afreen@ibm.com>
7 days agoMerge pull request #66321 from rhcs-dashboard/73832-navigation-e2e-failure
Nizamudeen A [Mon, 1 Dec 2025 06:44:44 +0000 (12:14 +0530)]
Merge pull request #66321 from rhcs-dashboard/73832-navigation-e2e-failure

mgr/dasboard : Fixes navigation e2e test

Reviewed-by: Nizamudeen A <nia@redhat.com>
8 days agoMerge pull request #66425 from baum/rbd_with_crc32c_nvmeof_service_spec
baum [Sun, 30 Nov 2025 09:22:54 +0000 (11:22 +0200)]
Merge pull request #66425 from baum/rbd_with_crc32c_nvmeof_service_spec

mgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec

8 days agoqa/standalone: osd-scrub-dump.sh: additional tests wip-rf-eofread
Ronen Friedman [Sat, 22 Nov 2025 14:48:46 +0000 (08:48 -0600)]
qa/standalone: osd-scrub-dump.sh: additional tests

Also - adding stride override parameter to the existing
large-object scrub test. And: improving the output format
of the test results.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
8 days agoosd/scrub: extract the 'read object data' functionality
Ronen Friedman [Fri, 21 Nov 2025 13:39:29 +0000 (07:39 -0600)]
osd/scrub: extract the 'read object data' functionality

from be_deep_scrub() into a separate function,
ReplicatedBackend::be_deep_scrub_read().

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
8 days agoosd/scrub: do not attempt to read past the end of an object
Ronen Friedman [Thu, 20 Nov 2025 13:54:20 +0000 (07:54 -0600)]
osd/scrub: do not attempt to read past the end of an object

When performing deep scrubs, the scrubber reads object data
in strides. Existing code uses a short read to detect the end
of the object (and if the object size is a multiple of the
stride - an extra read is performed, which returns 0 bytes).

The proposed change is to avoid such extra read attempts,
by using our knowledge of the object size.

Also - some minor code cleanups in the relevant function.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
8 days agoosd: provide fmtlib formatter for ScrubMapBuilder
Ronen Friedman [Sat, 22 Nov 2025 14:55:58 +0000 (08:55 -0600)]
osd: provide fmtlib formatter for ScrubMapBuilder

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
8 days agoMerge pull request #66230 from ronen-fr/wip-rf-larger-stride
Ronen Friedman [Sun, 30 Nov 2025 06:59:25 +0000 (08:59 +0200)]
Merge pull request #66230 from ronen-fr/wip-rf-larger-stride

osd/scrub: increasing the default data-read stride

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Alex Ainscow <aainscow@uk.ibm.com>
Reviewed-by: Jon Bailey <jonathan.bailey1@ibm.com>
9 days agomgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec
Alexander Indenbaum [Wed, 26 Nov 2025 12:28:51 +0000 (14:28 +0200)]
mgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec

Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
10 days agoosd: Perform shard look up correctly in partial EC writes
Alex Ainscow [Fri, 28 Nov 2025 14:33:13 +0000 (14:33 +0000)]
osd: Perform shard look up correctly in partial EC writes

Plugins are permitted to provide a mapping to change the order in which OSDs
are used. In practice only LRC does this and it is not currently enabled
with optimisations, so this is a theoretical bug.

The bug here was that the "first" shard was assumed to be shard_id_t(0).  However,
this is not true for LRC.

Fixes: https://tracker.ceph.com/issues/74016
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
10 days agoMerge pull request #64248 from zhuwei127/fix-doublefree
Kefu Chai [Fri, 28 Nov 2025 13:35:46 +0000 (21:35 +0800)]
Merge pull request #64248 from zhuwei127/fix-doublefree

examples/librados: fix memory pointed to by 'rs' is freed twice.

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
10 days agoMerge pull request #65771 from aainscow/ec_direct_reads_pr_1
Alex Ainscow [Thu, 27 Nov 2025 23:17:37 +0000 (23:17 +0000)]
Merge pull request #65771 from aainscow/ec_direct_reads_pr_1

EC Direct Reads: First PR, background work

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
10 days agoMerge pull request #66377 from baum/rbd_aio_write_with_crc32c_initial_fix
Ilya Dryomov [Thu, 27 Nov 2025 22:58:38 +0000 (23:58 +0100)]
Merge pull request #66377 from baum/rbd_aio_write_with_crc32c_initial_fix

librbd: rbd_aio_write_with_crc32c store CRC32C with initial value -1 to match msgr2 validation

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
11 days agomgr/dashboard: fix multi-cluster route reload logic
Aashish Sharma [Thu, 27 Nov 2025 09:22:47 +0000 (14:52 +0530)]
mgr/dashboard: fix multi-cluster route reload logic

Issue: Route was being force-reloaded using a two-step navigation hack causing unnecessary redirects and side effects.
Fix: Replaced the hack with Angular’s native same-URL reload using onSameUrlNavigation: 'reload' for a clean, stable route refresh.

Fixes: https://tracker.ceph.com/issues/74008
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
11 days agoqa: Reduce number of osd threads when using compression
Bill Scales [Fri, 21 Nov 2025 10:06:22 +0000 (10:06 +0000)]
qa: Reduce number of osd threads when using compression

Smithi nodes used by teuthology tests have 8 CPU cores and typically run
4 OSD processes. When bluestore software compression is enabled the size
of the OSD thread pool needs to be reduced to 2 threads per OSD because
these threads can easily use 100% of a core. This avoids excessive
amounts of context switches, which leads to OSD threads timing out,
which causes the OSD to drop heartbeat pings and for the monitor to
temporarily mark it down. In extreme cases this can lead to PGs getting
stuck in repeated loops of peering until the teuthology test times out.

Context switches happen oppurtunistically at the end of system calls
so functions with lots of logging are some of the worst affected.

Fixes: https://tracker.ceph.com/issues/72879
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
11 days agoosd: Restrict logging in MissingLoc::add_source_info
Bill Scales [Fri, 21 Nov 2025 10:38:44 +0000 (10:38 +0000)]
osd: Restrict logging in MissingLoc::add_source_info

add_source_info can generate an excessive amount of logging
if a PG has thousands of missing objects. When a system is
under load and threads are repeatedly context switching this
can lead to timeouts (tests showed this function taking up
to 10 seconds to execute with 99% of that time being in
logging calls where the thread was being pre-empted).
Stopping logging after the function has been running for
more than 0.5 seconds strikes a balance between providing
sufficient informtion to debug problems while providing
more stability when a system is heavily loaded.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
11 days agoosd: Increase log level for listing missing list
Bill Scales [Fri, 21 Nov 2025 10:25:48 +0000 (10:25 +0000)]
osd: Increase log level for listing missing list

Logging the entire contents of a missing list can generate a
1M character log line when there are 8000 missing objects in a
PG. Other places in the code logging the missing list use debug
level 25 which is not enabled by default in teuthology tests.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
11 days agoosd: reset_tp_timeout should reset timeout for all shards
Bill Scales [Mon, 24 Nov 2025 09:18:21 +0000 (09:18 +0000)]
osd: reset_tp_timeout should reset timeout for all shards

ShardedThreadPools are only used by the classic OSD process
which can have more than one thread for the same shard. Each
thread has a heartbeat timeout used to detect stalled threads.
Some code that is known to take a long time makes calls to
reset_tp_timeout to reset this timeout. However for sharded
pools this can be ineffective because it is common for threads
for the same shard to use the same locks (e.g. PG Lock) and
therefore if thread A is taking a long time and resetting
its timeout while holding a lock, thread B for the same shard
is liable to be waiting for the same lock, will not be
resetting its timeout and can be timed out.

Debug for issue 72879 showed heartbeat timeouts occurring at
the same time for both shards, an attempt to fix the problem
by calling reset_tp_timeout for the slow thread still showed
the other threads for the shard timing out waiting for the PG
lock that was held bythe slow thread. Looking at the OSD code
most places where reset_tp_timeout is called the thread is
holding the PG lock.

This commit moves the concept of shard_index from OSD into
ShardedThreadPool and modifies reset_tp_timeout so that it resets
the timeout for all threads for the same shard.

Some code calls reset_tp_timeout from inside loops that can take
a long time without consideration for how long the thread has
actually been running for. There is a risk that this type of
call could repeatedly reset the timeout for another shard which
is genuinely stuck and hence defeat the heartbeat checks. To
prevent this reset_tp_timeout is modified to be a NOP unless
the thread has been processing the current workitem for more
than 0.5 seconds. Therefore threads have to be slow but making
forward progress to be abe to reset the timeout.

Fixes: https://tracker.ceph.com/issues/72879
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
11 days agoMerge pull request #65739 from tchaikov/rgw-gap-list-manpage
Kefu Chai [Thu, 27 Nov 2025 04:12:08 +0000 (12:12 +0800)]
Merge pull request #65739 from tchaikov/rgw-gap-list-manpage

debian: include rgw-gap-list manpage and rgw-policy-check in ceph-common

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Matan Breizman <mbreizma@ibm.com>
11 days agoMerge pull request #66166 from cbodley/wip-cmake-breakpad-arch
Casey Bodley [Wed, 26 Nov 2025 18:37:59 +0000 (13:37 -0500)]
Merge pull request #66166 from cbodley/wip-cmake-breakpad-arch

cmake: disable WITH_BREAKPAD on power arch

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
11 days agomgr/dashboard: add GET endpoint for CephFS mirror peers list and daemon status
Pedro Gonzalez Gomez [Thu, 20 Nov 2025 14:09:03 +0000 (15:09 +0100)]
mgr/dashboard: add GET endpoint for CephFS mirror peers list and daemon status

Fixes: https://tracker.ceph.com/issues/74002
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
12 days agodoc: remove os recommendations for eol releases
Casey Bodley [Wed, 26 Nov 2025 16:06:16 +0000 (11:06 -0500)]
doc: remove os recommendations for eol releases

Signed-off-by: Casey Bodley <cbodley@redhat.com>
12 days agodoc/dev: add os-recommendations.rst to release checklist
Casey Bodley [Wed, 26 Nov 2025 15:44:14 +0000 (10:44 -0500)]
doc/dev: add os-recommendations.rst to release checklist

Signed-off-by: Casey Bodley <cbodley@redhat.com>
12 days agodoc: add Tentacle to os recommendations
Casey Bodley [Wed, 26 Nov 2025 15:41:31 +0000 (10:41 -0500)]
doc: add Tentacle to os recommendations

Signed-off-by: Casey Bodley <cbodley@redhat.com>
12 days agodoc: remove Octopus and Centos7 from os recommendations
Casey Bodley [Wed, 26 Nov 2025 15:36:53 +0000 (10:36 -0500)]
doc: remove Octopus and Centos7 from os recommendations

cleanup to prepare for tentacle

Signed-off-by: Casey Bodley <cbodley@redhat.com>
12 days agoMerge pull request #66416 from bluikko/doc-fscrypt-improvements-cephfs
bluikko [Wed, 26 Nov 2025 13:51:41 +0000 (20:51 +0700)]
Merge pull request #66416 from bluikko/doc-fscrypt-improvements-cephfs

doc/cephfs: Small improvements in fscrypt.rst

12 days agoMerge pull request #66420 from bluikko/doc-sphinx-warnings-202511
bluikko [Wed, 26 Nov 2025 13:51:21 +0000 (20:51 +0700)]
Merge pull request #66420 from bluikko/doc-sphinx-warnings-202511

doc: Fix Sphinx warnings

12 days agoMerge pull request #66421 from bluikko/doc-sphinx-warning-tentacle-202511
bluikko [Wed, 26 Nov 2025 13:50:50 +0000 (20:50 +0700)]
Merge pull request #66421 from bluikko/doc-sphinx-warning-tentacle-202511

doc/releases: Fix Sphinx warning in tentacle.rst

12 days agoMerge pull request #66423 from bluikko/doc-sphinx-warning-theme-202511
bluikko [Wed, 26 Nov 2025 13:50:36 +0000 (20:50 +0700)]
Merge pull request #66423 from bluikko/doc-sphinx-warning-theme-202511

doc: Fix Sphinx warning about theme option

12 days agocommon/options: document osd_deep_scrub_stride wip-rf-larger-stride
Ronen Friedman [Sun, 23 Nov 2025 14:02:04 +0000 (16:02 +0200)]
common/options: document osd_deep_scrub_stride

default value change (from 0.5MB to 4MB)

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
12 days agoosdc: Add SplitOp capability to Objecter
Alex Ainscow [Tue, 14 Oct 2025 08:24:56 +0000 (09:24 +0100)]
osdc: Add SplitOp capability to Objecter

This will provide the ability for Objecter to split up
certain ops and distribute them to the OSDs directly if
that provides a preformance advantage.

This is experimental code and is switched off unless the
magic pool flags are enabled. These magic pool flags were
pushed in an earlier commit in the same PR.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
12 days agoosdc: Fix minor typo
Alex Ainscow [Mon, 13 Oct 2025 11:50:11 +0000 (12:50 +0100)]
osdc: Fix minor typo

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
12 days agoosdc: Interface to allow split reads to copy op from client op to split op
Alex Ainscow [Fri, 3 Oct 2025 14:34:55 +0000 (15:34 +0100)]
osdc: Interface to allow split reads to copy op from client op to split op

When spliting ops, certain addition sub ops (e.g. get xattr) can be simply passed
through to the child op.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
12 days agoosdc: Add stub for ability to force an op to always go to a particular shard
Alex Ainscow [Fri, 3 Oct 2025 14:32:22 +0000 (15:32 +0100)]
osdc: Add stub for ability to force an op to always go to a particular shard

This will eventually be used by SplitIo to direct ops to the correct OSD.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>