]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
3 days agoFAIL REVIEW: Enabel direct reads by default ec_direct_reads
Alex Ainscow [Mon, 10 Nov 2025 13:46:51 +0000 (13:46 +0000)]
FAIL REVIEW: Enabel direct reads by default

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
8 days agoosd: Set debug level to 20
Alex Ainscow [Wed, 5 Nov 2025 15:35:44 +0000 (15:35 +0000)]
osd: Set debug level to 20

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
8 days agoosd: Implement stub for torn read detection
Alex Ainscow [Wed, 5 Nov 2025 15:23:35 +0000 (15:23 +0000)]
osd: Implement stub for torn read detection

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
8 days agoosd: Fix minor dout typo
Alex Ainscow [Wed, 5 Nov 2025 15:12:16 +0000 (15:12 +0000)]
osd: Fix minor dout typo

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
8 days agoosd: Send yes-i-really-mean-it flag with set_pool_flags
Alex Ainscow [Wed, 5 Nov 2025 15:11:34 +0000 (15:11 +0000)]
osd: Send yes-i-really-mean-it flag with set_pool_flags

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Fixes
Alex Ainscow [Thu, 23 Oct 2025 14:43:34 +0000 (15:43 +0100)]
osdc: Fixes

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: More debug for re-using ops in split ops.
Alex Ainscow [Thu, 23 Oct 2025 14:28:53 +0000 (15:28 +0100)]
osdc: More debug for re-using ops in split ops.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Do not call calc_target twice for split ops.
Alex Ainscow [Thu, 23 Oct 2025 14:28:29 +0000 (15:28 +0100)]
osdc: Do not call calc_target twice for split ops.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Move logging of split ops.
Alex Ainscow [Thu, 23 Oct 2025 14:27:11 +0000 (15:27 +0100)]
osdc: Move logging of split ops.

Change to split ops to log all ops with split ops set.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agolibrados: Add set_no_objver() API
Alex Ainscow [Thu, 23 Oct 2025 14:24:55 +0000 (15:24 +0100)]
librados: Add set_no_objver() API

This API will prevent librados from requesting objver from the
OSDs.  This is a less flexible version of the feature offered by
neorados.

The penalty is that objvers will be invalid. The gain is a
performance improvement when using EC direct reads.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Set pgid to force shard value
Alex Ainscow [Thu, 23 Oct 2025 13:01:36 +0000 (14:01 +0100)]
osd: Set pgid to force shard value
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Single-OSD reads do not need to use SplitOp objects.
Alex Ainscow [Thu, 23 Oct 2025 13:00:04 +0000 (14:00 +0100)]
osd: Single-OSD reads do not need to use SplitOp objects.

As a performance enhancement, if an EC direct read only
requires a single OSD, then use the original op and make it
failover to the primary if the op fails with EAGAIN.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Add stat to set of ops which can be forwarded in split op
Alex Ainscow [Wed, 22 Oct 2025 14:12:33 +0000 (15:12 +0100)]
osdc: Add stat to set of ops which can be forwarded in split op

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agotest/librados: Extend io_cxx.cc tests to assert split_ops
Alex Ainscow [Wed, 22 Oct 2025 14:12:05 +0000 (15:12 +0100)]
test/librados: Extend io_cxx.cc tests to assert split_ops

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoAdd flag name for the split reads pool flag
Jon [Thu, 23 Oct 2025 12:50:57 +0000 (13:50 +0100)]
Add flag name for the split reads pool flag

Signed-off-by: Jon Bailey <jonathan.bailey1@ibm.com>
3 weeks agoEnable to pool flag for direct_reads in ceph_test_rados_io_sequence
Jon [Thu, 23 Oct 2025 12:25:19 +0000 (13:25 +0100)]
Enable to pool flag for direct_reads in ceph_test_rados_io_sequence

Signed-off-by: Jon Bailey <jonathan.bailey1@ibm.com>
3 weeks agotest/osd: Allow user to specify balanced reads in interactive mode
Matty Williams [Wed, 22 Oct 2025 09:43:35 +0000 (10:43 +0100)]
test/osd: Allow user to specify balanced reads in interactive mode

Added optional "-b"/"balanced" flag to the end of read/read2/read3 operations in interactive mode, to make them balanced reads.
Balanced read percentage is not used in interactive mode.

Signed-off-by: Matty Williams <Matty.Williams@ibm.com>
3 weeks agotest/librados: Fix split op tests wip-aainscow-ec-direct-reads
Alex Ainscow [Tue, 21 Oct 2025 13:33:27 +0000 (14:33 +0100)]
test/librados: Fix split op tests

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agotest/librados: Add testcase handlers to look at stats and check split_ops
Alex Ainscow [Tue, 21 Oct 2025 13:29:29 +0000 (14:29 +0100)]
test/librados: Add testcase handlers to look at stats and check split_ops

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoAdd logger stub for split_op_reads
Alex Ainscow [Tue, 21 Oct 2025 13:29:00 +0000 (14:29 +0100)]
Add logger stub for split_op_reads

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Allow CMPXATTR
Alex Ainscow [Tue, 21 Oct 2025 13:28:31 +0000 (14:28 +0100)]
osdc: Allow CMPXATTR

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: SplitOp.init() can assume validate() has executed.
Alex Ainscow [Tue, 21 Oct 2025 13:28:10 +0000 (14:28 +0100)]
osdc: SplitOp.init() can assume validate() has executed.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Split ops should forward the RC from the primary OSD on success.
Alex Ainscow [Tue, 21 Oct 2025 13:27:07 +0000 (14:27 +0100)]
osdc: Split ops should forward the RC from the primary OSD on success.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Splitops must not assume each shard is a different OSD
Alex Ainscow [Tue, 21 Oct 2025 13:26:42 +0000 (14:26 +0100)]
osdc: Splitops must not assume each shard is a different OSD

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks ago Move split ops tests to split_op_cxx.cc
Alex Ainscow [Tue, 21 Oct 2025 13:25:18 +0000 (14:25 +0100)]
 Move split ops tests to split_op_cxx.cc

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoFIXUP: Allow CRCs on erasure pools.
Alex Ainscow [Tue, 21 Oct 2025 13:24:52 +0000 (14:24 +0100)]
FIXUP: Allow CRCs on erasure pools.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoFIXUP: Fix FLAG -> FLAGS
Alex Ainscow [Tue, 21 Oct 2025 13:24:28 +0000 (14:24 +0100)]
FIXUP:  Fix FLAG -> FLAGS

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agotest/osd: Add balanced read flag to a percentage of read ops
Matty Williams [Mon, 20 Oct 2025 15:46:43 +0000 (16:46 +0100)]
test/osd: Add balanced read flag to a percentage of read ops

Add command line argument to specify percentage of read ops that should use the balanced reads flag. Default is 100%.

Signed-off-by: Matty Williams <Matty.Williams@ibm.com>
3 weeks agoosd: Optimized EC missing list not updated on recovering shard (OLD FIX)
Bill Scales [Wed, 1 Oct 2025 14:52:23 +0000 (15:52 +0100)]
osd: Optimized EC missing list not updated on recovering shard (OLD FIX)

Shards that are recovering (last_complete != last_update) are using
pwlc to advance last_update for writes that did not effect the shard.
However simply incrementing last_update means that the primary doesnt
send the shard log entries that it missed and consequently it cannot
update its missing list.

If the shard is already missing object X at version V1 and there was
a partial write at V2 that did not update the shard, it does not need
to retain the log entry, but it does need to update the missing list
to say it needs V2 rather than V1. This ensures all shards report
a need for an object at the same version and avoids an assert in
MissingLoc::add_active_missing when the primary is trying to
combine the missing lists from all the shards to work out what has
to be recovered.

The fix is to avoid applying pwlc when last_complete != last_update,
this forces the primary to send the log to the recovering shard
which can then update its missing list (and discarding the log
entries as they are partial writes).

Fixes: https://tracker.ceph.com/issues/73249
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosdc: Forward cls call to version.read to primary
Alex Ainscow [Fri, 17 Oct 2025 17:33:09 +0000 (18:33 +0100)]
osdc: Forward cls call to version.read to primary

RGW uses a class method on erasure coded pools to read a version
number attribute. These are associated with large reads which
would benefit from direct reads.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: outbl concatenates all output buffers.
Alex Ainscow [Fri, 17 Oct 2025 12:22:03 +0000 (13:22 +0100)]
osdc: outbl concatenates all output buffers.

The functionality defened by librados tests is that if an outbl and
out_bl buffers are provided by the client and there are multiple ops
then the outbl is a concatenation of all out_bl buffers. splitOps needs
to honour this too.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agotest/librados: Extend cxx tests to cover split ops and fast EC
Alex Ainscow [Fri, 17 Oct 2025 12:21:18 +0000 (13:21 +0100)]
test/librados: Extend cxx tests to cover split ops and fast EC

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: SplitOps handle client-provided buffers without replacing them.
Alex Ainscow [Fri, 17 Oct 2025 08:26:34 +0000 (09:26 +0100)]
osdc: SplitOps handle client-provided buffers without replacing them.

Some clients provide buffers to be written to by Objecter through a
(legacy?) field in the op called "outbl" (not to be confused with out_bl).

If those clients provide a buffer of exactly the right size, then the
expectation is that the buffer gets written to without being moved. This change
makes SplitOps mimic the read completion behaviour from Objecter.

The memcpy here is a significant performance impact, however it is thought
that most clients will not use this interface.

There are many comments in this code to explain the reasons, as it is quite
a surprising mechanism.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: SplitOps tolerate object underruns
Alex Ainscow [Fri, 17 Oct 2025 08:11:48 +0000 (09:11 +0100)]
osdc: SplitOps tolerate object underruns

The OSDs can correctly under run a read if the object is smaller than the
requested read size.  The librados test suite detected that the split ops
code did not tolerate such an underrun.  This is now fixed.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Make EC Sync reads return a zero RC for success.
Alex Ainscow [Fri, 17 Oct 2025 08:09:54 +0000 (09:09 +0100)]
osd: Make EC Sync reads return a zero RC for success.

This was a misunderstanding of the API. The librados client expects that
a read returns zero on success, not the number of bytes read.

Correspondingly, simplify the client-based SplitOps rc handling code to
always return 0. It tolerates >0 RCs, but will always return zero.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agotest/librados: Extend librados tests to cover both fast EC and split ops.
Alex Ainscow [Fri, 17 Oct 2025 08:01:38 +0000 (09:01 +0100)]
test/librados: Extend librados tests to cover both fast EC and split ops.

The librados tests have special handling for EC, but they do not attempt to test
either fast EC or split ops. This change upgrades the tests to be paramaterized
tests and constructs the necessary pools and boilerplate.

There is also a minor tweak to a stat tests to allow for longer names which
get generated in my containerised test environment.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Add mon command to override pool flags.
Alex Ainscow [Fri, 17 Oct 2025 07:52:27 +0000 (08:52 +0100)]
osd: Add mon command to override pool flags.

This is intended as a developer too and as such requires the
yes_i_really_mean_it flag. The idea is that we can add new
experimental pool features, with a generic way of turning
the features on, without polluting the parameters in the command
yet further.

The command is perhaps a little messy:

ceph osd pool <pool> set set_pool_flags <int>
ceph osd pool <pool> set unset_pool_flags <int>

I also decided against an API to show the pool flags. As this
would be hard to read without some complex decode and the
functionality to observe pool flags in logs with high debug
levels already exists.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Add actual_pgid to debug_op_summary
Alex Ainscow [Wed, 15 Oct 2025 12:33:31 +0000 (13:33 +0100)]
osd: Add actual_pgid to debug_op_summary

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Disable debug in SplitOp
Alex Ainscow [Tue, 14 Oct 2025 10:33:54 +0000 (11:33 +0100)]
osdc: Disable debug in SplitOp
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Relax missing entry assert for partial writes.
Alex Ainscow [Fri, 3 Oct 2025 12:35:48 +0000 (13:35 +0100)]
osd: Relax missing entry assert for partial writes.

This assert was relaxed to allow for missing partial write logs. However
it needs to be relaxed further to cope with the missing list not containing
some objects with later log entries.

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

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Optimized EC missing list not updated on recovering shard
Bill Scales [Wed, 1 Oct 2025 14:52:23 +0000 (15:52 +0100)]
osd: Optimized EC missing list not updated on recovering shard

Shards that are recovering (last_complete != last_update) that
skip transactions and log entries because of partial writes are
using pwlc to advance last_update. However simply incrementing
last_update is not sufficient - there are scenarios where the
needed version of a missing object has to be updated.

If the shard is already missing object X at version V1 and there was
a partial write at V2 that did not update the shard, it does not need
to retain the log entry, but it does need to update the missing list
to say it needs V2 rather than V1. This ensures all shards report
a need for an object at the same version and avoids an assert in
MissingLoc::add_active_missing when the primary is trying to
combine the missing lists from all the shards to work out what has
to be recovered. Avoiding applying pwlc during the early phase
of the peering process ensures the missing list gets updated.

However if a shard is not missing object X and there was a partial
write at V2 that did not update the shard then at the end of peering
it is still necessary to advance last_upadte by applying pwlc. This
ensures that in later peering cycles the code does not change its
mind and think the shard is now missing object X.

The fix is to be more sophisticated about when pwlc can be used
to advance last_update for a recovering shard. The code now
passes in a parameter indicating whether we are in the early
(pre activate) or later phase of peering. This also means that
additional calls to apply_pwlc are needed when peering gets to
activating and is searching for missing to make updates that were
not made earlier.

Fixes: https://tracker.ceph.com/issues/73249
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoMAYBE PUSH? Extra assert
Alex Ainscow [Mon, 13 Oct 2025 13:45:07 +0000 (14:45 +0100)]
MAYBE PUSH? Extra assert

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoDO NOT PUSH: Force IO Sequencer to make balanced reads
Alex Ainscow [Mon, 13 Oct 2025 13:41:15 +0000 (14:41 +0100)]
DO NOT PUSH: Force IO Sequencer to make balanced reads

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks 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>
3 weeks 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>
3 weeks 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>
3 weeks 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>
3 weeks agoosdc: Split handle_osd_op_reply into two functions
Alex Ainscow [Fri, 3 Oct 2025 14:15:29 +0000 (15:15 +0100)]
osdc: Split handle_osd_op_reply into two functions

The functionality is not altered by this commit.

In the future we want to post-process split-ios after
recombining the read data.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Remove unused con parameter from Objecter::_calc_target()
Alex Ainscow [Fri, 3 Oct 2025 14:11:00 +0000 (15:11 +0100)]
osdc: Remove unused con parameter from Objecter::_calc_target()

This parameter is not used by the _calc_target code.  It is being
removed just to clean up the code, as we are making some changes
to _calc_target in later stages of the split io PR.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosdc: Interface to submit IO with ASIO Post.
Alex Ainscow [Fri, 3 Oct 2025 13:55:56 +0000 (14:55 +0100)]
osdc: Interface to submit IO with ASIO Post.

For direct read failures, the locking is such that we cannot
immediately send a new IO without deadlocking. This new interface
allows an op to be sent as an asio post.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Call clear_repop_obc for EC as well as Replica.
Alex Ainscow [Fri, 3 Oct 2025 13:51:23 +0000 (14:51 +0100)]
osd: Call clear_repop_obc for EC as well as Replica.

This function is necessary for balanced reads and as such is required for EC too.

Rename the function to make sense, given this change of purpose, but the
functionality does not change.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Implement sparse reads for EC for direct reads only
Alex Ainscow [Fri, 3 Oct 2025 13:47:15 +0000 (14:47 +0100)]
osd: Implement sparse reads for EC for direct reads only

Sparse reads for EC are simple to implement, as the code is essentially
identical to that of replica, with some address translation.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Implement read sync for EC direct reads
Alex Ainscow [Fri, 3 Oct 2025 13:39:03 +0000 (14:39 +0100)]
osd: Implement read sync for EC direct reads

When doing a direct read in EC, only a single OSD is involved and
that OSD, by definition is the only OSD involved. As such we can
do the more performant sync read, rather than async read.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Add extent_to_shard_extent interface to PGBackend.
Alex Ainscow [Fri, 3 Oct 2025 13:24:49 +0000 (14:24 +0100)]
osd: Add extent_to_shard_extent interface to PGBackend.

This allows a backend to expose how an object offset/length translates to
an offset/length on a particular shard.

For Replica, this is trivial.

For EC, this means looking up the start and end offsets, then translating
this to shard address space.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Set the from shard in the EC read reply.
Alex Ainscow [Fri, 3 Oct 2025 13:17:48 +0000 (14:17 +0100)]
osd: Set the from shard in the EC read reply.

This was not necessary prior to direct reads, but is essential when the
client needs to know which shard the read came from.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Generalise can_serve_replica_read for consumption by EC.
Alex Ainscow [Fri, 3 Oct 2025 13:15:32 +0000 (14:15 +0100)]
osd: Generalise can_serve_replica_read for consumption by EC.

The can_serve_replica_read() function is called by replica to determine whether there are
any uncommitted writes.  If such writes exist, then the system will reject the IO to avoid
the risk of reading data from a write which may yet be rolled back.

The same code is going to be useful for EC direct reads.

The string_view code is not expensive.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Create EC Direct Read flag and pass through to EC.
Alex Ainscow [Fri, 3 Oct 2025 13:00:10 +0000 (14:00 +0100)]
osd: Create EC Direct Read flag and pass through to EC.

This is in preperation for supporting sparse and sync reads in EC.
Such ops will only be supported for "balance reads".

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Replace unused EC offset translation function with useful one.
Alex Ainscow [Fri, 3 Oct 2025 12:53:33 +0000 (13:53 +0100)]
osd: Replace unused EC offset translation function with useful one.

The old chunk_aligned_shard_offset_to_ro_offset was not only unused, it
didn't actually have the correct logic. We replace it here with similar,
but more useful function that will be used in sparse reads for EC

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Introduce pool flag for "split IO" and Plugin flag for "direct read"
Alex Ainscow [Fri, 3 Oct 2025 12:49:58 +0000 (13:49 +0100)]
osd: Introduce pool flag for "split IO" and Plugin flag for "direct read"

These flags will currently behave as follows:

1. The pool flag is never set, unless by a user with the osd_pool_default_flags
   config option.
2. The pool flag will be removed for EC pools where the plugin does not support
   direct reads.
3. Replica pools will never remove the flag.

The intention is to eventually invert this logic and allow split IOs upon
upgrade to Umberella in this same function.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoMerge pull request #65997 from YiteGu/fix-param-err-for-ratelimit-command
Anthony D'Atri [Tue, 21 Oct 2025 13:06:58 +0000 (09:06 -0400)]
Merge pull request #65997 from YiteGu/fix-param-err-for-ratelimit-command

doc/rgw: use --bucket instead of --uid

3 weeks agoMerge pull request #65772 from cbodley/wip-73348
Casey Bodley [Tue, 21 Oct 2025 13:02:05 +0000 (09:02 -0400)]
Merge pull request #65772 from cbodley/wip-73348

rgw: fix 'bucket rm --bypass-gc' for copied objects

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
3 weeks agoMerge pull request #65775 from cbodley/wip-73361
Casey Bodley [Tue, 21 Oct 2025 13:01:39 +0000 (09:01 -0400)]
Merge pull request #65775 from cbodley/wip-73361

rgw: RGWSI_Notify drains the finisher before deleting RGWWatchers

Reviewed-by: Adam Emerson <aemerson@redhat.com>
3 weeks agoMerge pull request #65996 from YiteGu/fix-desc-err-for-max-read-ops
Anthony D'Atri [Tue, 21 Oct 2025 12:59:49 +0000 (08:59 -0400)]
Merge pull request #65996 from YiteGu/fix-desc-err-for-max-read-ops

doc/rgw: fix the description error of --max-read-ops

3 weeks agoMerge pull request #64331 from Jayaprakash-ibm/wip-cputrace-addition
Jaya Prakash [Tue, 21 Oct 2025 11:06:11 +0000 (16:36 +0530)]
Merge pull request #64331 from Jayaprakash-ibm/wip-cputrace-addition

common: Add cputrace tool for scope-based CPU performance tracing

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
3 weeks agoMerge pull request #65977 from rhcs-dashboard/fix-73563-main
afreen23 [Tue, 21 Oct 2025 08:48:24 +0000 (14:18 +0530)]
Merge pull request #65977 from rhcs-dashboard/fix-73563-main

mgr/dashboard: fix multisite wizard realm configuration mode

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Naman Munet <nmunet@redhat.com>
3 weeks agodoc/rgw: use --bucket instead of --uid
Yite Gu [Tue, 21 Oct 2025 06:26:24 +0000 (14:26 +0800)]
doc/rgw: use --bucket instead of --uid

Signed-off-by: YiteGu <guyite@bytedance.com>
3 weeks agodoc/rgw: fix the description error of --max-read-ops
Yite Gu [Tue, 21 Oct 2025 04:36:43 +0000 (12:36 +0800)]
doc/rgw: fix the description error of --max-read-ops

max-read-ops indicates the number of operations, not bytes.

signed-off-by: Yite Gu <guyite@bytedance.com>

3 weeks agoMerge pull request #65408 from tchaikov/wip-suppress-asan-warnings
Kefu Chai [Tue, 21 Oct 2025 00:18:45 +0000 (08:18 +0800)]
Merge pull request #65408 from tchaikov/wip-suppress-asan-warnings

qa/{asan,lsan}.supp: suppress Python module and libstdc++ false positives

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 weeks agoMerge pull request #64768 from bluikko/doc-notifications-fixes-cephadm2
Anthony D'Atri [Mon, 20 Oct 2025 15:22:23 +0000 (11:22 -0400)]
Merge pull request #64768 from bluikko/doc-notifications-fixes-cephadm2

doc/radosgw: Small fixes and improvements in notifications.rst, part 2

3 weeks agoMerge pull request #65899 from Matan-B/wip-matanb-crimson-user-docs
Matan Breizman [Mon, 20 Oct 2025 07:25:30 +0000 (10:25 +0300)]
Merge pull request #65899 from Matan-B/wip-matanb-crimson-user-docs

doc: Introduce Crimson User Guide

Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
3 weeks agoMerge pull request #64730 from benhanokh/dedup_throttle
Yuval Lifshitz [Sun, 19 Oct 2025 11:20:01 +0000 (14:20 +0300)]
Merge pull request #64730 from benhanokh/dedup_throttle

rgw/dedup: add throttling mechanism

3 weeks agoMerge pull request #65902 from yuvalif/wip-yuval-73434
Yuval Lifshitz [Sat, 18 Oct 2025 17:27:57 +0000 (20:27 +0300)]
Merge pull request #65902 from yuvalif/wip-yuval-73434

rgw/logging: fix race condition when name update returns ECANCELED

3 weeks agoMerge pull request #65585 from cbodley/wip-rgw-lc-bucket-already-run-today
Casey Bodley [Fri, 17 Oct 2025 16:23:53 +0000 (12:23 -0400)]
Merge pull request #65585 from cbodley/wip-rgw-lc-bucket-already-run-today

rgw/lc: enforce consistent rgw_lc_debug_interval start times

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
3 weeks agoMerge pull request #60815 from rhcs-dashboard/fix-69029-main
Adam King [Fri, 17 Oct 2025 16:08:52 +0000 (12:08 -0400)]
Merge pull request #60815 from rhcs-dashboard/fix-69029-main

mgr/cephadm: Use a persistent volume to store Loki DB

Reviewed-by: Adam King <adking@redhat.com>
3 weeks agoMerge pull request #65982 from bluikko/doc-config-ref-formatting-radosgw
bluikko [Fri, 17 Oct 2025 13:21:22 +0000 (20:21 +0700)]
Merge pull request #65982 from bluikko/doc-config-ref-formatting-radosgw

doc/radosgw: Small fixes in config-ref.rst

3 weeks agoMerge pull request #64959 from edwinzrodriguez/ceph-wip-72442
Casey Bodley [Fri, 17 Oct 2025 13:01:10 +0000 (09:01 -0400)]
Merge pull request #64959 from edwinzrodriguez/ceph-wip-72442

rgw: Update buffer size for HMAC signature

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 weeks agoMerge pull request #62787 from dang/wip-dang-getattrs
Casey Bodley [Fri, 17 Oct 2025 12:50:24 +0000 (08:50 -0400)]
Merge pull request #62787 from dang/wip-dang-getattrs

RGW - zipper - Remove target from get_obj_attrs()

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 weeks agocommon: use constexpr buffer size instead of fixed 256 for read_format in cputrace
Jaya Prakash [Fri, 17 Oct 2025 12:22:45 +0000 (12:22 +0000)]
common: use constexpr buffer size instead of fixed 256 for read_format in cputrace

Signed-off-by: Jaya Prakash <jayaprakash@ibm.com>
3 weeks agoMerge pull request #65926 from soumyakoduri/wip-skoduri-restore-tests
Soumya Koduri [Fri, 17 Oct 2025 08:13:35 +0000 (13:43 +0530)]
Merge pull request #65926 from soumyakoduri/wip-skoduri-restore-tests

rgw/restore: increase read_thorugh restore period

Reviewed-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
3 weeks agoMerge pull request #65980 from idryomov/wip-debug-cls-fixup
Ilya Dryomov [Fri, 17 Oct 2025 08:04:11 +0000 (10:04 +0200)]
Merge pull request #65980 from idryomov/wip-debug-cls-fixup

cls/hello: debug_cls -> debug_objclass in the comment

Reviewed-by: Neha Ojha <nojha@redhat.com>
3 weeks agodoc/radosgw: Small fixes in config-ref.rst
Ville Ojamo [Fri, 17 Oct 2025 06:35:00 +0000 (13:35 +0700)]
doc/radosgw: Small fixes in config-ref.rst

Use privileged prompt for CLI command.

Use title case consistently for section titles.

Fix a typo that caused RST syntax rendered as-is.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
3 weeks agoMerge pull request #65920 from nh2/docs-cephfs-inodes-on-replicated
Anthony D'Atri [Fri, 17 Oct 2025 00:40:41 +0000 (20:40 -0400)]
Merge pull request #65920 from nh2/docs-cephfs-inodes-on-replicated

doc/cephfs/createfs: Recommend default data pool on SSDs for non-EC

3 weeks agorgw: Update buffer size for HMAC signature and improve signature max size calculation
Edwin Rodriguez [Thu, 7 Aug 2025 16:00:01 +0000 (12:00 -0400)]
rgw: Update buffer size for HMAC signature and improve signature max size calculation

Move SIGNATURE_MAX_SIZE to public interface of AWSEngine::VersionAbstractor
Use SIGNATURE_MAX_SIZE to size buffer in get_v2_signature

Fixes: https://tracker.ceph.com/issues/72442
Signed-off-by: Edwin Rodriguez <edwin.rodriguez1@ibm.com>
3 weeks agocls/hello: debug_cls -> debug_objclass in the comment
Ilya Dryomov [Thu, 16 Oct 2025 20:43:51 +0000 (22:43 +0200)]
cls/hello: debug_cls -> debug_objclass in the comment

debug_cls option doesn't exist -- it's spelled debug_objclass.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
4 weeks agoMerge pull request #65970 from cbodley/wip-cmake-arrow-thrift-boost-jammy
Casey Bodley [Thu, 16 Oct 2025 15:00:13 +0000 (11:00 -0400)]
Merge pull request #65970 from cbodley/wip-cmake-arrow-thrift-boost-jammy

cmake: BuildArrow.cmake uses bundled thrift if system version < 0.17

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agoMerge pull request #64762 from mkogan1/wip-ratelim-list-v001
Mark Kogan [Thu, 16 Oct 2025 14:30:45 +0000 (17:30 +0300)]
Merge pull request #64762 from mkogan1/wip-ratelim-list-v001

rgw: rate limit for LIST and DELETE ops

4 weeks agoMerge pull request #65168 from stackhpc/swap-tip-fix-wording
Anthony D'Atri [Thu, 16 Oct 2025 13:14:05 +0000 (09:14 -0400)]
Merge pull request #65168 from stackhpc/swap-tip-fix-wording

doc/start: fix wording in swap tip

4 weeks agoMerge pull request #65869 from tchaikov/wip-crimson-aligned-dma-write
Kefu Chai [Thu, 16 Oct 2025 12:37:03 +0000 (20:37 +0800)]
Merge pull request #65869 from tchaikov/wip-crimson-aligned-dma-write

crimson/seastore: use DMA alignment for block size instead of stat

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agomgr/dashboard: fix multisite wizard realm configuration mode
Aashish Sharma [Thu, 16 Oct 2025 09:34:54 +0000 (15:04 +0530)]
mgr/dashboard: fix multisite wizard realm configuration mode

The option to select an existing realm for replication is not coming up in the wizard even though a realm created and eligible for replication.

Fixes: https://tracker.ceph.com/issues/73563
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
4 weeks agoMerge pull request #65973 from rhcs-dashboard/inline-edit-validator-fix
Nizamudeen A [Thu, 16 Oct 2025 09:48:32 +0000 (15:18 +0530)]
Merge pull request #65973 from rhcs-dashboard/inline-edit-validator-fix

mgr/dashboard: fix generic form submit validator for inline edit

Reviewed-by: Naman Munet <nmunet@redhat.com>
4 weeks agoMerge pull request #65707 from a16bitsysop/crimson-gcc15
Matan Breizman [Thu, 16 Oct 2025 09:43:10 +0000 (12:43 +0300)]
Merge pull request #65707 from a16bitsysop/crimson-gcc15

crimson: admin: fix FTBFS with gcc 15

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agodoc: Introduce Crimson User Guide
Matan Breizman [Sun, 12 Oct 2025 12:29:10 +0000 (12:29 +0000)]
doc: Introduce Crimson User Guide

All of Crimson's documentation was included under `doc/dev`.
As we gradually lean towards a more user facing documentation such as
deployment, usage, Packaging and so on -- we should have a separated guide with
non dev related docs.

Developer docs would remain under dev/crimson/

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agomgr/dashboard: fix generic form submit validator for inline edit
Nizamudeen A [Thu, 16 Oct 2025 05:35:32 +0000 (11:05 +0530)]
mgr/dashboard: fix generic form submit validator for inline edit

currently the validation error is being applied generically to the
parent formgroup which will set the whole form into an error state when
one of the inline editing is failing on a validation. So just changing
that to a single control.

Fixes: https://tracker.ceph.com/issues/73558
Signed-off-by: Nizamudeen A <nia@redhat.com>
4 weeks agoMerge pull request #65954 from positiveEV/patch-2
Anthony D'Atri [Thu, 16 Oct 2025 00:21:10 +0000 (20:21 -0400)]
Merge pull request #65954 from positiveEV/patch-2

doc/rados/operations: remove duplicate word

4 weeks agocmake: BuildArrow.cmake uses bundled thrift if system version < 0.17 wip-cmake-arrow-thrift-boost-jammy
Casey Bodley [Wed, 15 Oct 2025 21:08:48 +0000 (17:08 -0400)]
cmake: BuildArrow.cmake uses bundled thrift if system version < 0.17

the bump to arrow 17.0.0 broke the ubuntu jammy builds with:

In file included from /usr/include/thrift/transport/TTransport.h:25,
                 from /usr/include/thrift/protocol/TProtocol.h:28,
                 from /usr/include/thrift/TBase.h:24,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_types.h:14,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_constants.h:10,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_constants.cpp:7:
/usr/include/thrift/transport/TTransportException.h:23:10: fatal error: boost/numeric/conversion/cast.hpp: No such file or directory
   23 | #include <boost/numeric/conversion/cast.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

when comparing the gcc command line with arrow-15.0.0, the following argument
is no longer present:
> -isystem /build/ceph-20.3.0-3402-gb2db4947/obj-x86_64-linux-gnu/boost/include

arrow 17.0.0 seems to assume that thrift doesn't depend on boost anymore. a
comment in https://github.com/apache/arrow/issues/32266 claims that
> we don't need Boost with system Thrift 0.17.0 or later

but our jammy builds are stuck with libthrift-0.16.0. to reenable jammy builds,
instruct Arrow's cmake to use its bundled thrift dependency if our system thrift
version is < 0.17.0

Signed-off-by: Casey Bodley <cbodley@redhat.com>
4 weeks agocmake: Findthrift.cmake parses version string
Casey Bodley [Wed, 15 Oct 2025 21:06:41 +0000 (17:06 -0400)]
cmake: Findthrift.cmake parses version string

when thrift headers are found, parse the version string into a
cmake variable and pass it to find_package_handle_standard_args

this will be needed by BuildArrow.cmake for some conditional logic

Signed-off-by: Casey Bodley <cbodley@redhat.com>
4 weeks agoMerge pull request #65774 from ljflores/wip-add-telemetry-pool-flag
Laura Flores [Wed, 15 Oct 2025 20:50:35 +0000 (15:50 -0500)]
Merge pull request #65774 from ljflores/wip-add-telemetry-pool-flag

mgr/telemetry: add 'ec_optimizations' flag to 'basic_pool_flags' collection

4 weeks agoMerge pull request #65955 from gbregman/main
Gil Bregman [Wed, 15 Oct 2025 20:48:31 +0000 (23:48 +0300)]
Merge pull request #65955 from gbregman/main

mgr/cephadm: Increase the default expiration time for NVMEoF subsyste…

4 weeks agoMerge pull request #65891 from kshtsk/wip-workunit-drop-pipes
kyr [Wed, 15 Oct 2025 18:20:46 +0000 (20:20 +0200)]
Merge pull request #65891 from kshtsk/wip-workunit-drop-pipes

qa/tasks/workunit: fix no module named 'pipes'

4 weeks agoMerge pull request #65967 from jmundack/doc-sort-csc-memer-list
Joseph Mundackal [Wed, 15 Oct 2025 16:17:23 +0000 (12:17 -0400)]
Merge pull request #65967 from jmundack/doc-sort-csc-memer-list

doc: Update governance.rst to have member names sorted