]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
2 weeks agoosd: Remove EC-optimized only flag for not reset_complete_to
Alex Ainscow [Tue, 10 Jun 2025 14:58:28 +0000 (15:58 +0100)]
osd: Remove EC-optimized only flag for not reset_complete_to

The protection here applies to non-optimized EC and replica shards, but will
not be exercised as much. So this is essentially a clean up

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
2 weeks agoosd: EC optimizations fix bug when recovering only partial write objects
Bill Scales [Fri, 6 Jun 2025 12:28:14 +0000 (13:28 +0100)]
osd: EC optimizations fix bug when recovering only partial write objects

PGLog::reset_complete_to is not handling the scenario where all the
missing objects have a partial write that excludes updating the shard being
recovered as their most recent update. In this scenario the oldest need
is newer than newest log entry. Setting last_compelte to the head of the
log confuses code and makes it think that recovery has completed.

The fix is to hold last_complete one entry behind the head of the log
until all missing objects have been recovered.

PGLog::recover_got already does this when an object is recovered and the
remaining objects to recover match this scenario, so this fix just makes
reset_complete_to behave the same way as recover_got.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 weeks agoosd: EC optimizations correct pwlc after PG split
Bill Scales [Thu, 5 Jun 2025 10:17:06 +0000 (11:17 +0100)]
osd: EC optimizations correct pwlc after PG split

When a PG splits the log entries are divided between the two PGs,
this can result in PWLC refering to log entries in the other PG.
Rollback PWLC after the split so it is not further advanced that
the most recently completed log entry.

Non-primary shards can be missing log entries and may rollback
PWLC too far because of this, however this does not matter
because a split occurs at the start of a peering cycle and these
shards will be updated with the correct PWLC from the primary
shard later in the peering cycle when they are activated.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 weeks agoosd: EC optimizations overaggresive check for missing objects
Bill Scales [Mon, 26 May 2025 13:33:12 +0000 (14:33 +0100)]
osd: EC optimizations overaggresive check for missing objects

Relax an assert in read_log_and_missing for optimized EC
pools. Because the log may not have entries for partial
writes but the missing list is calculated from the full
log the need version for a missing item may be newer than
the lastest log entry for that object.

ceph_objectstore_tool needs care because we don't want to add
extra dependencies. To minimise the dependencies, we always
relax the asserts when using this tool.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
2 weeks agoosd: EC Optimizations fix proc_master_log handling of splits
Bill Scales [Wed, 21 May 2025 17:16:50 +0000 (18:16 +0100)]
osd: EC Optimizations fix proc_master_log handling of splits

For optimized EC pools proc_master_log needs to deal with
the other log being merged being behind the local log because
it is missing partial writes. This is done by finding the
point where the logs diverge and then checking whether local
log entries have been committed on all the shards.

A bug in this code meant that after a PG split (where there
may be gaps in the log due to entries moving to the other PG)
that the divergence point was not found and committed
partial writes ended up being discarded which creates
unfound objects.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 weeks agoosd: EC Optimizations fix missing call to partial_write
Bill Scales [Tue, 20 May 2025 10:37:05 +0000 (11:37 +0100)]
osd: EC Optimizations fix missing call to partial_write

When a shard is backfilling and it receives a log entry where the
transaction is not applied it can skip the roll forward by
immediately advancing crt. However it is still necessary to
call partial_write in this scenario to keep the pwlc information
up to date.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 weeks agoosd: Do not complete log on non primary until missing recovered.
Alex Ainscow [Fri, 16 May 2025 13:52:22 +0000 (14:52 +0100)]
osd: Do not complete log on non primary until missing recovered.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: EC Optimizations bug fix for flip/flop acting set
Bill Scales [Wed, 14 May 2025 07:39:40 +0000 (08:39 +0100)]
osd: EC Optimizations bug fix for flip/flop acting set

EC optimizations pools have a set of non-primary shards which
cannot become the primary because they do not have all the
metadata updates. If one of these shards is chosen as the
primary it will set the acting set to force another shard to
be chosen.

It is important that the selected acting set is the same
acting set that will be chosen by the next primary (assuming
nothing else changes) otherwise a PG can get into a state where
the acting set flip/flops between two different states causing
the PG to get stuck in peering and hanging I/O.

A bug in update_peer_info meant that non-primary shards did not
present the same info to choose_acting_set as primary shards
because they were not updating their pg_info_t based on pwlc
information from other shards.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: Refuse to commit/rollforward beyond end of log.
Alex Ainscow [Tue, 13 May 2025 11:55:14 +0000 (12:55 +0100)]
osd: Refuse to commit/rollforward beyond end of log.

In optimised EC, if transaction is applied to all shards, followed by a
partial transaction AND these two transactions overlap, then it is
possible for the non-primary shards to commit a version which is after
then end of the log.

This commit changes the apply_log such that the commit version will be
changed to the head of the log in such situations.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Refactor partial_write to address multiple issues.
Alex Ainscow [Tue, 29 Apr 2025 11:02:07 +0000 (12:02 +0100)]
osd: Refactor partial_write to address multiple issues.

We fix a number of issues with partial_write here.

Fix an issue where it is unclear whether the empty PWLC state is
newer or older than a populated PWLC on another shard by always
updating the pwlc with an empty range, rather than blank.

This is an unfortunate small increase in metadata, so we should
come back to this in a later commit (or possibly later PR).

Normally a PG log consists of a set of log entries with each
log entry have a version number one greater than the previous
entry. When a PG splits the PG log is split so that each of the
new PGs only has log entries for objects in that PG, which
means there can be gaps between version numbers.

PGBackend::partial_write is trying to keep track of adjacent
log updates than do not update a particular shard storing
these as a range in partial_writes_last_complete. To do this
it must compare with the version number of the previous log
entry rather than testing for a version number increment of one.

Also simplify partial_writes to make it more readable.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: nonprimary shards are permitted to have a crt newer than head
Alex Ainscow [Tue, 29 Apr 2025 10:59:24 +0000 (11:59 +0100)]
osd: nonprimary shards are permitted to have a crt newer than head

Non-primary shards do not get updates for some transactions.  It is possible
however for other transactions to increase the can_rollback_to to a later
version.  This causes an assert for some operations.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: overaggressive assert in read_log_and_missing with optimized EC pool
Bill Scales [Fri, 25 Apr 2025 14:03:02 +0000 (15:03 +0100)]
osd: overaggressive assert in read_log_and_missing with optimized EC pool

read_log_and_missing is called during OSD initializaiton to sanity check
the PG log. One of its checks is too agressive for an optimized EC pool
where because of a partial write there can be a log entry but no update
to the object on this shard (other shards will have been updated). The
fix is to skip the checks when the log entry indicates this shard was
not updated.

Only affects pool with allow_ec_optimizations flag on.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: EC optimizations rework for pg_temp
Bill Scales [Thu, 29 May 2025 11:53:27 +0000 (12:53 +0100)]
osd: EC optimizations rework for pg_temp

Bug fixes for how pg_temp is used with optimized EC pools. For these
pools pg_temp is re-ordered with non-primary shards last. The acting
set was undoing this re-ordering in PeeringState, but this is too
late and results code getting the shard id wrong. One consequence
iof this was an OSD refusing to create a PG because of an incorrect
shard id.

This commit moves the re-ordering earlier into OSDMap::_get_temp_osds,
some changes are then required to OSDMap::clean_temps.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: EC Optimizations OSDMap::clean_temps preventing change of primary
Bill Scales [Fri, 23 May 2025 09:45:46 +0000 (10:45 +0100)]
osd: EC Optimizations OSDMap::clean_temps preventing change of primary

clean_temps is clearing pg_temp if the acting set will be the same
as the up set. For optimized EC pools this is overaggressive because
there are scenarios where it is setting acting set to be the same as
up set to force an alternative shard to be chosen as primary - this
happens because the acting set is transformed to place non-primary
shards at the end of the pg_temp vector.

Detect this scenario and stop clean_temps from undoing the acting
set which is being set by PeeringState::choose_acting.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: EC optimizations bug in OSDMap::clean_temps
Bill Scales [Thu, 22 May 2025 12:12:57 +0000 (13:12 +0100)]
osd: EC optimizations bug in OSDMap::clean_temps

OSDMap clean_temps clears pg_temp for a PG when the up set
matches the acting_set. For optimized EC pools the pg_temp
is reordered to place primary shards first, this function
was not calling pgtemp_undo_primaryfirst to revert the
reordering.

This meant that a 2+1 EC PG with up set [1,2,3] and
a desired acting set [1,3,2] re-ordered the acting
set to produce pg_temp as [1,2,3] and then deleted this
because it equals the up set.

Calling pgtemp_undo_primaryfirst makes this code work
as intended.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agomon: prime_pg_temp needs to call pgtemp_primaryfirst when encoding pg_temp
Bill Scales [Wed, 21 May 2025 12:23:33 +0000 (13:23 +0100)]
mon: prime_pg_temp needs to call pgtemp_primaryfirst when encoding pg_temp

Optimized EC pools encode pgtemp in a different order putting the shards
which cannot become the primary (nonprimary shards) last.

prime_pg_temp is missing a call to pgtemp_primaryfirst to reorder the
acting set it is trying to set as pg_temp.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: EC Optimizations fix routing of requests to non-zero shard id
Bill Scales [Mon, 19 May 2025 16:01:39 +0000 (17:01 +0100)]
osd: EC Optimizations fix routing of requests to non-zero shard id

Pools with EC optimizations can use pg_temp to modify the selection
of the primary. When this happens the clients route request to the
correct OSD, but wrong shard which causes hung I/Os or misdirected
I/Os.

Fix Objecter to select the correct shard when sending requests to
EC optimized pools. Fix OSD to modify the shard when receving
requests from legacy clients.

Add new unittests to test new functions for remapping the shard id.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
3 weeks agoosd: fmt::format shard_versions
Alex Ainscow [Thu, 24 Apr 2025 20:44:15 +0000 (21:44 +0100)]
osd: fmt::format shard_versions

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoosd: Cosmetic code cleanup and improve debug
Alex Ainscow [Thu, 24 Apr 2025 14:13:31 +0000 (15:13 +0100)]
osd: Cosmetic code cleanup and improve debug

All these changes are one of:
* Whitespace changes
* Addition/removal of debug
* Typos
* Make CPU-intensive debug statements deb ug level 30
* Remove unnecessary counter which did not really help with debug
* Extra comments

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 weeks agoMerge pull request #63839 from aainscow/setattr_fix
Alex Ainscow [Wed, 25 Jun 2025 22:25:54 +0000 (23:25 +0100)]
Merge pull request #63839 from aainscow/setattr_fix

bluestore: Fix _setattr() with rare memory alignments

Reviewed-by: akupczyk@redhat.com
Reviewed-by: rzarzyns@redhat.com
3 weeks agoMerge pull request #63970 from tchaikov/wip-osd-scrubber-localtime
SrinivasaBharathKanta [Wed, 25 Jun 2025 21:50:19 +0000 (03:20 +0530)]
Merge pull request #63970 from tchaikov/wip-osd-scrubber-localtime

osd/scrubber: replace deprecated fmt::localtime() with localtime_r()

3 weeks agoMerge pull request #63792 from kamoltat/wip-ksirivad-small-refractor-68550
SrinivasaBharathKanta [Wed, 25 Jun 2025 21:49:48 +0000 (03:19 +0530)]
Merge pull request #63792 from kamoltat/wip-ksirivad-small-refractor-68550

src/mgr/ClusterState.cc: micro improve ingest_pgstats

3 weeks agoMerge pull request #63552 from shraddhaag/wip-shraddhaag-availability-3
SrinivasaBharathKanta [Wed, 25 Jun 2025 21:49:02 +0000 (03:19 +0530)]
Merge pull request #63552 from shraddhaag/wip-shraddhaag-availability-3

mon: add command osd pool clear-availability-status

3 weeks agoMerge pull request #63523 from Matan-B/wip-matanb-crimson-asock-race-fixes
Matan Breizman [Wed, 25 Jun 2025 14:17:24 +0000 (17:17 +0300)]
Merge pull request #63523 from Matan-B/wip-matanb-crimson-asock-race-fixes

crimson/osd: Admin Socket fixes

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
3 weeks agoMerge pull request #64172 from zdover23/wip-doc-2025-06-25-tr70758-radosgw-bucket_logging
Zac Dover [Wed, 25 Jun 2025 13:44:50 +0000 (23:44 +1000)]
Merge pull request #64172 from zdover23/wip-doc-2025-06-25-tr70758-radosgw-bucket_logging

doc/radosgw: line edit bucket_logging.rst

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
3 weeks agoMerge pull request #64161 from tchaikov/wip-doc-mgr-module-config
Kefu Chai [Wed, 25 Jun 2025 11:45:15 +0000 (19:45 +0800)]
Merge pull request #64161 from tchaikov/wip-doc-mgr-module-config

doc: Document ceph-mgr module configuration options

Reviewed-by: Zac Dover <zac.dover@proton.me>
Reviewed-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
3 weeks agoMerge pull request #64162 from tchaikov/wip-doc-drop-typed-ast
Kefu Chai [Wed, 25 Jun 2025 11:43:41 +0000 (19:43 +0800)]
Merge pull request #64162 from tchaikov/wip-doc-drop-typed-ast

doc: do not depend on typed-ast

Reviewed-by: Zac Dover <zac.dover@proton.me>
3 weeks agodoc/radosgw: line edit bucket_logging.rst 64172/head
Zac Dover [Wed, 25 Jun 2025 09:19:49 +0000 (19:19 +1000)]
doc/radosgw: line edit bucket_logging.rst

Edit doc/radosgw/bucket_logging.rst so that it is not solecistic and so
that its punctuation is corrected and its use of articles is corrected.
This file remains in my judgment demotic and maybe demotic enough to
warrant another editorial pass in the future.

Fixes: https://tracker.ceph.com/issues/70758
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64163 from tchaikov/wip-doc-inline-literal
Zac Dover [Wed, 25 Jun 2025 08:40:11 +0000 (18:40 +1000)]
Merge pull request #64163 from tchaikov/wip-doc-inline-literal

doc: Fix unterminated inline literal in ceph-conf.rst

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #63673 from Matan-B/wip-matanb-crimson-signals-aborts
Matan Breizman [Wed, 25 Jun 2025 07:36:59 +0000 (10:36 +0300)]
Merge pull request #63673 from Matan-B/wip-matanb-crimson-signals-aborts

crimson/common/fatal_signal: Rework signals

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
3 weeks agoMerge pull request #63972 from cyx1231st/wip-seastore-refine-extent-states-p2
Yingxin Cheng [Wed, 25 Jun 2025 07:07:10 +0000 (15:07 +0800)]
Merge pull request #63972 from cyx1231st/wip-seastore-refine-extent-states-p2

crimson/os/seastore: update extent states from pending to stable upon prepare_record()

Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
3 weeks agoMerge PR #59435 into main
Venky Shankar [Wed, 25 Jun 2025 06:39:39 +0000 (12:09 +0530)]
Merge PR #59435 into main

* refs/pull/59435/head:
mgr/volumes: Fix json.loads for test on mon caps
mgr/volumes: Add test for mon caps if auth key has remaining mds/osd caps
mgr/volumes: Keep mon caps if auth key has remaining mds/osd caps

Reviewed-by: Milind Changire <mchangir@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 weeks agodoc: Document ceph-mgr module configuration options 64161/head
Kefu Chai [Wed, 25 Jun 2025 02:26:58 +0000 (10:26 +0800)]
doc: Document ceph-mgr module configuration options

Add comprehensive documentation for defining configuration options in
ceph-mgr modules, including all supported properties and their usage.

Previously, the documentation did not explain how to define ceph-mgr
module configuration options, despite subtle differences from other Ceph
components. This change documents all supported Option properties, their
types, and provides clear examples to help module developers properly
configure their options.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 weeks agoMerge pull request #64160 from tchaikov/wip-doc-dev-config
Zac Dover [Wed, 25 Jun 2025 05:11:42 +0000 (15:11 +1000)]
Merge pull request #64160 from tchaikov/wip-doc-dev-config

doc/dev/config: Document how to use :confval: directive for config options

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Zac Dover <zac.dover@proton.me>
3 weeks agodoc: Fix unterminated inline literal in ceph-conf.rst 64163/head
Kefu Chai [Wed, 25 Jun 2025 03:34:50 +0000 (11:34 +0800)]
doc: Fix unterminated inline literal in ceph-conf.rst

Add missing space after closing backticks to properly terminate inline literal.

Sphinx was generating a warning due to an unterminated inline literal
string:

```
/home/kefu/dev/ceph/doc/rados/configuration/ceph-conf.rst:320: WARNING: Inline literal start-string without end-string.
```

This fix ensures the inline literal is properly closed and eliminates the
build warning.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 weeks agodoc: do not depend on typed-ast 64162/head
Kefu Chai [Wed, 25 Jun 2025 03:02:46 +0000 (11:02 +0800)]
doc: do not depend on typed-ast

the typed-ast project was marked end of life since July 2023, and
not maintained anymore. since we build the document using readthedocs'
service, and in .readtherdocs.yml we use python 3.9, which comes with
ast module included by its standard library.

the typed-ast dependency was originally added in 30d41597, but now that
we are using python 3.9, there is no need to use this module anymore.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 weeks agodoc/dev/config: Document how to use :confval: directive for config options 64160/head
Kefu Chai [Wed, 25 Jun 2025 03:50:24 +0000 (11:50 +0800)]
doc/dev/config: Document how to use :confval: directive for config options

Add comprehensive guide for documenting configuration options using the
:confval: directive, including naming conventions and cross-referencing.

Previously, the documentation lacked guidance on using the :confval:
directive and the important distinction between regular config options
and mgr module options (which require the mgr/<module>/ namespace
prefix). This change provides detailed examples and best practices for
properly documenting and referencing both types of configuration options.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 weeks agoMerge PR #64153 into main
Patrick Donnelly [Wed, 25 Jun 2025 01:06:14 +0000 (21:06 -0400)]
Merge PR #64153 into main

* refs/pull/64153/head:
Revert "Merge pull request #64111 from zdover23/wip-doc-2025-06-23-tr71796-rados-ops-balancer"

Reviewed-by: Zac Dover <zac.dover@gmail.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
3 weeks agoRevert "Merge pull request #64111 from zdover23/wip-doc-2025-06-23-tr71796-rados... 64153/head
Patrick Donnelly [Tue, 24 Jun 2025 18:52:09 +0000 (14:52 -0400)]
Revert "Merge pull request #64111 from zdover23/wip-doc-2025-06-23-tr71796-rados-ops-balancer"

This reverts commit f2b7c0465ea2727537ea58b44b2f17c6dda7d556, reversing
changes made to e5868d88dd3ada55a7cacd7a5faec5aa9bc96aff.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agoMerge pull request #64107 from zdover23/wip-doc-2025-06-23-tr71789-radosgw-notifications
Zac Dover [Tue, 24 Jun 2025 18:51:11 +0000 (04:51 +1000)]
Merge pull request #64107 from zdover23/wip-doc-2025-06-23-tr71789-radosgw-notifications

doc/radosgw: remove "pubsub_event_triggered"

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
3 weeks agoMerge pull request #64137 from tchaikov/wip-rbd-with-krbd
Ilya Dryomov [Tue, 24 Jun 2025 18:37:34 +0000 (20:37 +0200)]
Merge pull request #64137 from tchaikov/wip-rbd-with-krbd

rbd: fix unused function warning when WITH_KRBD is disabled

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
3 weeks agodoc/radosgw: remove "pubsub_event_triggered" 64107/head
Zac Dover [Mon, 23 Jun 2025 08:07:40 +0000 (18:07 +1000)]
doc/radosgw: remove "pubsub_event_triggered"

Remove "pubsub_event_triggered" from the list of "Notification
Performance Statistics". It is obsolete.

Fixes: https://tracker.ceph.com/issues/71789
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64111 from zdover23/wip-doc-2025-06-23-tr71796-rados-ops-balancer
Zac Dover [Tue, 24 Jun 2025 18:09:16 +0000 (04:09 +1000)]
Merge pull request #64111 from zdover23/wip-doc-2025-06-23-tr71796-rados-ops-balancer

doc/rados: clarify "upmap_max_deviation"

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
3 weeks agoMerge pull request #64105 from zdover23/wip-doc-2025-06-23-tr71791-radosgw-notifications
Zac Dover [Tue, 24 Jun 2025 17:56:49 +0000 (03:56 +1000)]
Merge pull request #64105 from zdover23/wip-doc-2025-06-23-tr71791-radosgw-notifications

doc/radosgw: add "persistent_topic_len"

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
3 weeks agodoc/radosgw: add "persistent_topic_len" 64105/head
Zac Dover [Mon, 23 Jun 2025 08:26:09 +0000 (18:26 +1000)]
doc/radosgw: add "persistent_topic_len"

Add the labeled counter "persistent_topic_len" to the list of
"Notification Performance Statistics" in doc/radosgw/notifications.rst.

Fixes: https://tracker.ceph.com/issues/71791
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64106 from zdover23/wip-doc-2025-06-23-tr71792-radosgw-notifications
Zac Dover [Tue, 24 Jun 2025 15:42:10 +0000 (01:42 +1000)]
Merge pull request #64106 from zdover23/wip-doc-2025-06-23-tr71792-radosgw-notifications

doc/radosgw: add "persistent_topic_size"

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
3 weeks agorbd: fix unused function warning when WITH_KRBD is disabled 64137/head
Kefu Chai [Tue, 24 Jun 2025 14:38:13 +0000 (22:38 +0800)]
rbd: fix unused function warning when WITH_KRBD is disabled

Guard print_error_description() and get_unsupported_features() with
`#ifdef WITH_KRBD` to prevent compiler warnings when KRBD support is
not enabled.

These functions are only called by do_kernel_map(), which is itself
conditionally compiled. When WITH_KRBD is not defined, the compiler
generates unused function warnings for these helper functions.

Fixes warning:

```
/home/kefu/dev/ceph/src/tools/rbd/action/Kernel.cc:305:13: warning: ‘void rbd::action::kernel::print_error_description(const char*, const char*, const char*, const char*, int)’ defined but not used [-Wunused-function]
  305 | static void print_error_description(const char *poolname,
      |             ^~~~~~~~~~~~~~~~~~~~~~~
```

this silences the warning.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 weeks agoMerge PR #62675 into main
Venky Shankar [Tue, 24 Jun 2025 11:08:48 +0000 (16:38 +0530)]
Merge PR #62675 into main

* refs/pull/62675/head:
test/mds: Fix catch by value

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
3 weeks agocrimson/common/smp_helpers: cleanup invoke_on_all_seq 63523/head
Matan Breizman [Tue, 24 Jun 2025 10:25:36 +0000 (10:25 +0000)]
crimson/common/smp_helpers: cleanup invoke_on_all_seq

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoMerge pull request #64063 from tchaikov/wip-ec-cache-refactor
Alex Ainscow [Tue, 24 Jun 2025 10:04:15 +0000 (11:04 +0100)]
Merge pull request #64063 from tchaikov/wip-ec-cache-refactor

osd/ECExtentCache: cleanup and optimization

3 weeks agoMerge pull request #60797 from rhcs-dashboard/carbon-icons-subtask
Pedro Gonzalez Gomez [Tue, 24 Jun 2025 09:55:28 +0000 (11:55 +0200)]
Merge pull request #60797 from rhcs-dashboard/carbon-icons-subtask

mgr/dashboard: Carbonize Icons for Modules (Block, Object, File, Observability, Administration)

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Pedro Gonzalez <pegonzal@ibm.com>
3 weeks agoMerge pull request #63963 from afreen23/wip-label-hosts
afreen23 [Tue, 24 Jun 2025 08:30:43 +0000 (14:00 +0530)]
Merge pull request #63963 from afreen23/wip-label-hosts

mgr/dashboard: Allow host with labels in listener form

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
3 weeks agoMerge pull request #63961 from afreen23/wip-force-listener
afreen23 [Tue, 24 Jun 2025 08:30:12 +0000 (14:00 +0530)]
Merge pull request #63961 from afreen23/wip-force-listener

mgr/dashboard: Add --force flag for listeners

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
3 weeks agoMerge pull request #64088 from InstelligenceIO/patch-2
Zac Dover [Tue, 24 Jun 2025 07:07:12 +0000 (17:07 +1000)]
Merge pull request #64088 from InstelligenceIO/patch-2

[Docs]: Corrected spelling mistake

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
3 weeks agodoc/rados: clarify "upmap_max_deviation" 64111/head
Zac Dover [Mon, 23 Jun 2025 12:50:03 +0000 (22:50 +1000)]
doc/rados: clarify "upmap_max_deviation"

Clarify the threshold set by "upmap_max_deviation" and add the
information about this configurable that is currently in
src/pybind/mgr/balancer/module.py to src/common/options/global.yaml.in,
so that it will be accessible by means of ".. confval::" declarations.

Fixes: https://tracker.ceph.com/issues/71796
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64104 from zdover23/wip-doc-2025-06-23-tr71790-radosgw-notifications
Zac Dover [Tue, 24 Jun 2025 04:46:11 +0000 (14:46 +1000)]
Merge pull request #64104 from zdover23/wip-doc-2025-06-23-tr71790-radosgw-notifications

doc/radosgw: remove "pubsub_event_lost"

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
3 weeks agoMerge pull request #64072 from phlogistonjohn/jjm-wip-el10
Dan Mick [Mon, 23 Jun 2025 16:42:44 +0000 (09:42 -0700)]
Merge pull request #64072 from phlogistonjohn/jjm-wip-el10

script/build-with-container.: fixes and improvments towards el10

3 weeks agoMerge pull request #63883 from leonidc/fix_upgrade_gw_lost
SrinivasaBharathKanta [Mon, 23 Jun 2025 16:12:40 +0000 (21:42 +0530)]
Merge pull request #63883 from leonidc/fix_upgrade_gw_lost

nvmeofgw: fix sending acks during upgrade

3 weeks agoMerge pull request #63796 from tchaikov/wip-memstore-silence-warning
Kefu Chai [Mon, 23 Jun 2025 14:07:25 +0000 (22:07 +0800)]
Merge pull request #63796 from tchaikov/wip-memstore-silence-warning

cmake: suppress -Wmaybe-uninitialized warning in memstore PageSet

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoMerge pull request #64075 from nh2/docs-balancer-variable-name
Zac Dover [Mon, 23 Jun 2025 14:02:25 +0000 (00:02 +1000)]
Merge pull request #64075 from nh2/docs-balancer-variable-name

doc/rados/operations: Actually mention `upmap_max_deviation` setting name

Reviewed-by: Zac Dover <zac.dover@proton.me>
3 weeks agodoc/radosgw: add "persistent_topic_size" 64106/head
Zac Dover [Mon, 23 Jun 2025 08:35:05 +0000 (18:35 +1000)]
doc/radosgw: add "persistent_topic_size"

Add "persistent_topic_size" to the list of "Notification Performance
Statistics" in doc/radosgw/notifications.rst.

Fixes: https://tracker.ceph.com/issues/71792
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64071 from tchaikov/wip-static_ptr-alignas
Casey Bodley [Mon, 23 Jun 2025 13:12:33 +0000 (09:12 -0400)]
Merge pull request #64071 from tchaikov/wip-static_ptr-alignas

common/static_ptr: pass an integer to alignas to fix GCC-11 build fai…

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 weeks agoMerge pull request #64103 from zdover23/wip-doc-2025-06-23-tr71793-radosgw-notifications
Zac Dover [Mon, 23 Jun 2025 13:02:42 +0000 (23:02 +1000)]
Merge pull request #64103 from zdover23/wip-doc-2025-06-23-tr71793-radosgw-notifications

doc/radosgw: improve "pubsub_push_pending" info

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
3 weeks agoMerge pull request #63398 from NitzanMordhai/wip-nitzan-calc-pool-availability-valgri...
NitzanMordhai [Mon, 23 Jun 2025 12:20:14 +0000 (15:20 +0300)]
Merge pull request #63398 from NitzanMordhai/wip-nitzan-calc-pool-availability-valgrind-invalid-read

src/mon/MgrStatMonitor: fix invalid iterator increment in calc_pool_availability()

3 weeks agodoc/rados/operations: Actually mention `upmap_max_deviation` setting name 64075/head
Niklas Hambüchen [Sat, 21 Jun 2025 17:53:34 +0000 (19:53 +0200)]
doc/rados/operations: Actually mention `upmap_max_deviation` setting name

Signed-off-by: Niklas Hambüchen <mail@nh2.me>
3 weeks agodoc: Fixed a spelling error. 64088/head
Stellios Williams [Mon, 23 Jun 2025 10:54:31 +0000 (20:54 +1000)]
doc: Fixed a spelling error.

Corrected communicte to communicate

Signed-off-by: Instelligence.io <github@instelligence.io>
3 weeks agocrimson/common/smp_helpers: cleanup sharded_map_seq
Matan Breizman [Mon, 23 Jun 2025 10:18:23 +0000 (10:18 +0000)]
crimson/common/smp_helpers: cleanup sharded_map_seq

Let PGShardManager::invoke_on_each_shard_seq pass the local shard_services
instance instead of using an additional helper.

The downside of dropping the generic sharded_map_seq helper is that it is
able to support *any* (seastar::)sharded object. However, as shard_services
is the only user of it - directly using the local instance without the
helper seems easier to read.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/common/smp_helpers: rename reactor_map_seq
Matan Breizman [Mon, 23 Jun 2025 10:02:37 +0000 (10:02 +0000)]
crimson/common/smp_helpers: rename reactor_map_seq

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/common/smp_helpers: fix reactor_map_seq
Matan Breizman [Sun, 22 Jun 2025 10:10:10 +0000 (10:10 +0000)]
crimson/common/smp_helpers: fix reactor_map_seq

Copy f into reactor_map_seq which would be kept alive
due to this method being a coroutine. That way, we can ensure
the lambdas passed to each core that are capturing f by
reference would be safe.
Alternatively, we can also copy f by using it's copy ctor and
pass a copy to each shard:
co_await crimson::submit_to(core, F(f))
However, avoiding the copy is possible here due to the sequential
traversal. Note, seastar's invoke_on_all do copy each callback to
every shard and is running the invocation in parallel.

The above would have fixed f's captures to be invalid and result
in a segfaults on diffrent shards.

Fixes: https://tracker.ceph.com/issues/71457
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/osd/shard_services: PerShardState::dump_ops_in_flight debug
Matan Breizman [Wed, 18 Jun 2025 10:57:37 +0000 (10:57 +0000)]
crimson/osd/shard_services: PerShardState::dump_ops_in_flight debug

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/admin/osd_admin: move to coroutines
Matan Breizman [Tue, 17 Jun 2025 13:23:26 +0000 (13:23 +0000)]
crimson/admin/osd_admin: move to coroutines

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/admin/osd_admin: add logs when calling hooks
Matan Breizman [Thu, 29 May 2025 09:18:32 +0000 (09:18 +0000)]
crimson/admin/osd_admin: add logs when calling hooks

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/admin/admin_socket: add logs, move to ceph_assert
Matan Breizman [Thu, 29 May 2025 09:18:01 +0000 (09:18 +0000)]
crimson/admin/admin_socket: add logs, move to ceph_assert

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/admin/osd_admin: DumpInFlightOpsHook to await active
Matan Breizman [Wed, 28 May 2025 10:49:13 +0000 (10:49 +0000)]
crimson/admin/osd_admin: DumpInFlightOpsHook to await active

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoMerge pull request #63425 from NitzanMordhai/wip-nitzan-osdmap-incremental-process...
NitzanMordhai [Mon, 23 Jun 2025 09:31:02 +0000 (12:31 +0300)]
Merge pull request #63425 from NitzanMordhai/wip-nitzan-osdmap-incremental-process-idle

objecter: request OSDMap after idle ticks

3 weeks agoMerge pull request #62916 from mohit84/tick_without_osd_crash
NitzanMordhai [Mon, 23 Jun 2025 09:30:34 +0000 (12:30 +0300)]
Merge pull request #62916 from mohit84/tick_without_osd_crash

osd: Access/Modify epoch maps under mutex in OSDSuperblock class

3 weeks agodoc/radosgw: improve "pubsub_push_pending" info 64103/head
Zac Dover [Mon, 23 Jun 2025 08:47:05 +0000 (18:47 +1000)]
doc/radosgw: improve "pubsub_push_pending" info

Explain in greater detail what the counter "pubsub_push_pending" counts.

Fixes: https://tracker.ceph.com/issues/71793
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agodoc/radosgw: remove "pubsub_event_lost" 64104/head
Zac Dover [Mon, 23 Jun 2025 08:18:07 +0000 (18:18 +1000)]
doc/radosgw: remove "pubsub_event_lost"

Remove "pubsub_event_lost" from the list of "Notification Performance
Statistics" in doc/radosgw/notifications.rst. "pubsub_event_lost" is now
obsolete.

Fixes: https://tracker.ceph.com/issues/71790
Signed-off-by: Zac Dover <zac.dover@proton.me>
3 weeks agoMerge pull request #64046 from JonBailey1993/ceph_test_rados_io_sequence_error_readab...
Jon Bailey [Mon, 23 Jun 2025 08:17:41 +0000 (09:17 +0100)]
Merge pull request #64046 from JonBailey1993/ceph_test_rados_io_sequence_error_readability

test/osd: Improve readability of errors in ceph_test_rados_io_sequence

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
3 weeks agomgr/volumes: Fix json.loads for test on mon caps 59435/head
Enrico Bocchi [Tue, 5 Nov 2024 08:26:04 +0000 (09:26 +0100)]
mgr/volumes: Fix json.loads for test on mon caps

Signed-off-by: Enrico Bocchi <enrico.bocchi@cern.ch>
3 weeks agomgr/volumes: Add test for mon caps if auth key has remaining mds/osd caps
Enrico Bocchi [Wed, 16 Oct 2024 09:40:26 +0000 (11:40 +0200)]
mgr/volumes: Add test for mon caps if auth key has remaining mds/osd caps

Signed-off-by: Enrico Bocchi <enrico.bocchi@cern.ch>
3 weeks agomgr/volumes: Keep mon caps if auth key has remaining mds/osd caps
Enrico Bocchi [Mon, 26 Aug 2024 11:30:02 +0000 (13:30 +0200)]
mgr/volumes: Keep mon caps if auth key has remaining mds/osd caps

Signed-off-by: Enrico Bocchi <enrico.bocchi@cern.ch>
3 weeks agoMerge pull request #64026 from zdover23/wip-doc-2025-06-19-tr-68619-radosgw-s3select
Zac Dover [Mon, 23 Jun 2025 07:01:50 +0000 (17:01 +1000)]
Merge pull request #64026 from zdover23/wip-doc-2025-06-19-tr-68619-radosgw-s3select

doc/radosgw: update aws specification link

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
3 weeks agomgr/dashboard: Carbonize Icons for Modules (Block, Object, File, Observability, Admin... 60797/head
Prachi Goel [Fri, 22 Nov 2024 07:15:44 +0000 (12:45 +0530)]
mgr/dashboard: Carbonize Icons for Modules (Block, Object, File, Observability, Administration)

Fixes: https://tracker.ceph.com/issues/69017
Signed-off-by: Prachi <prgoel@redhat.com>
Modules Changed for this:
1. Block( mirroring, NVMe, ICSI, Images)
2. Object RGW (Overview, Bucket, Users, Multi-site, Gateways, NFS, Config)
3. Logs
4. Alerts
5. Services
6. Cluster

3 weeks agodoc: update user docs and release notes 63552/head
Shraddha Agrawal [Thu, 19 Jun 2025 13:05:06 +0000 (18:35 +0530)]
doc: update user docs and release notes

Fixes: https://tracker.ceph.com/issues/71495
Signed-off-by: Shraddha Agrawal <shraddhaag@ibm.com>
3 weeks agoqa/standalone/mon/availability.sh: add tests
Shraddha Agrawal [Thu, 19 Jun 2025 13:01:52 +0000 (18:31 +0530)]
qa/standalone/mon/availability.sh: add tests

This commit adds tests for the new command to clear availability
status for a particular pool. The two tests do the following:

1. Checks if availability status is cleared successfully.
2. Checks availability status is not cleared if feature is
disabled.

Fixes: https://tracker.ceph.com/issues/71495
Signed-off-by: Shraddha Agrawal <shraddhaag@ibm.com>
3 weeks agomon: add command osd pool clear-availability-status
Shraddha Agrawal [Wed, 28 May 2025 05:56:26 +0000 (11:26 +0530)]
mon: add command osd pool clear-availability-status

This commit adds a new command to allow users to clear the
calculated availability score for a specified pool. This can be
done by issuing the command:

  ceph osd pool clear-availability-status <pool_name>

Fixes: https://tracker.ceph.com/issues/71495
Signed-off-by: Shraddha Agrawal <shraddhaag@ibm.com>
3 weeks agosrc/mon/MgrStatMonitor: fix invalid iterator increment in calc_pool_availability() 63398/head
Nitzan Mordechai [Wed, 21 May 2025 11:41:01 +0000 (11:41 +0000)]
src/mon/MgrStatMonitor: fix invalid iterator increment in calc_pool_availability()

Erasing entries from `pool_availability` inside a range-for
loop invalidated the hidden iterator, triggering an
“Invalid read” under Valgrind.

- Use `std::erase_if(pool_availability, predicate)` for
  atomic removal.
- Refactor the stats-update loop to use structured bindings
  and a clear `++it` for readability.

Fixes: https://tracker.ceph.com/issues/71271
Signed-off-by: Nitzan Mordechai <nmordec@redhat.com>
3 weeks agoMerge pull request #64019 from cyx1231st/wip-seastore-improve-ut
Yingxin Cheng [Mon, 23 Jun 2025 02:00:27 +0000 (10:00 +0800)]
Merge pull request #64019 from cyx1231st/wip-seastore-improve-ut

test/crimson/seastore/test_transaction_manager: improve check_available()

Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
3 weeks agomgr/dashboard: Allow host with labels in listener form 63963/head
Afreen Misbah [Mon, 16 Jun 2025 17:09:46 +0000 (22:39 +0530)]
mgr/dashboard: Allow host with labels in listener form

- Currently, listeners cannot be added with the Ceph Dashboard if the gateway nodes are selected by label instead of hosts.

- Refactored the code to incorporate nodes with labels

- Also added missing typings and removed 'any'

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

Signed-off-by: Afreen Misbah <afreen@ibm.com>
3 weeks agocrimson/common/fatal_signal: Log error before collecting backtrace 63673/head
Matan Breizman [Thu, 12 Jun 2025 12:32:38 +0000 (12:32 +0000)]
crimson/common/fatal_signal: Log error before collecting backtrace

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/common/fatal_signal: skip print_segv_info and proc_maps
Matan Breizman [Wed, 4 Jun 2025 10:58:29 +0000 (10:58 +0000)]
crimson/common/fatal_signal: skip print_segv_info and proc_maps

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agocrimson/common/fatal_signal: rework print_backtrace
Matan Breizman [Wed, 4 Jun 2025 10:56:37 +0000 (10:56 +0000)]
crimson/common/fatal_signal: rework print_backtrace

* Move to GENERIC_LOG
* Print backtrace in log and in std out
* Switch to fmt::format

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agoMerge pull request #64006 from gbregman/main
Gil Bregman [Sat, 21 Jun 2025 19:39:40 +0000 (22:39 +0300)]
Merge pull request #64006 from gbregman/main

mgr/cephadm/nvmeof: Allow setting NVMEoF gateway notifications interval in the spec file

4 weeks agoMerge pull request #63247 from phlogistonjohn/jjm-cephadm-guess-name
Adam King [Sat, 21 Jun 2025 18:07:16 +0000 (14:07 -0400)]
Merge pull request #63247 from phlogistonjohn/jjm-cephadm-guess-name

cephadm: minor ergonomic improvements for hackers

Reviewed-by: Adam King <adking@redhat.com>
4 weeks agoMerge pull request #62445 from mchangir/mgr-bump-up-ref-count-for-MgrOpRequest
SrinivasaBharathKanta [Sat, 21 Jun 2025 05:05:31 +0000 (10:35 +0530)]
Merge pull request #62445 from mchangir/mgr-bump-up-ref-count-for-MgrOpRequest

mgr: avoid explicit dropping of ref

4 weeks agoscript/build-with-container: add rocky10 to built-in distros 64072/head
John Mulligan [Fri, 20 Jun 2025 23:03:22 +0000 (19:03 -0400)]
script/build-with-container: add rocky10 to built-in distros

Add "rocky10" (also aliased to "rockylinux10") to the known distro bases
so that the team can begin to experiment with the Rocky Linux 10 distro
for containerized builds.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
4 weeks agoscript/build-with-container: support --build-arg arguments
John Mulligan [Fri, 20 Jun 2025 23:46:16 +0000 (19:46 -0400)]
script/build-with-container: support --build-arg arguments

Allow passing --build-arg arguments to build-with-container.py
which are passed directly to the container build command.
This allows a developer to toggle certain features of the build
container, however this should not be used in CI.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
4 weeks agoDockerfile.build: make WITH_CRIMSON a build arg
John Mulligan [Fri, 20 Jun 2025 23:34:45 +0000 (19:34 -0400)]
Dockerfile.build: make WITH_CRIMSON a build arg

We've chosen to enable crimson by default to match the CI, but that
is not always something a developer may want, so make WITH_CRIMSON
a build argument that can be toggled off if necessary.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
4 weeks agoinstall-deps.sh: enable crb for rocky 10
John Mulligan [Fri, 20 Jun 2025 23:25:53 +0000 (19:25 -0400)]
install-deps.sh: enable crb for rocky 10

Rocky Linux 10 has a CRB repo that must be enabled for a number of
Ceph's dependencies to be installed via dnf.

Signed-off-by: John Mulligan <jmulligan@redhat.com>