]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/log
ceph.git
3 weeks agorgw/s3: apply vhost logic to s3 only
Casey Bodley [Thu, 3 Jul 2025 16:01:18 +0000 (12:01 -0400)]
rgw/s3: apply vhost logic to s3 only

the vhost-style transformations ran in RGWREST::preprocess() before we
even route the request, so applied to every REST API in radosgw

vhost-style requests are specific to the S3 API, so they should only
apply after being routed to RGWRESTMgr_S3

extract the vhost logic from RGWREST::proprocess() into
rgw_rest_transform_s3_vhost_style(), and call that only from
RGWRESTMgr_S3::get_resource_mgr_as_default()

url-decoding of request_uri into decoded_uri is now duplicated in
preprocess() to apply to all requests, then again after vhost-style
transforms the request_uri

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/rest: use ceph::split() for rgw_enable_apis
Casey Bodley [Thu, 3 Jul 2025 00:23:54 +0000 (20:23 -0400)]
rgw/rest: use ceph::split() for rgw_enable_apis

avoid allocating a list of strings to parse the comma-separated
rgw_enable_apis configuration

the range returned by ceph::split() has no size() function, so change
the calculation to not require it - `size() - distance(begin(), pos)`
is the same thing as `distance(pos, end())`

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/rest: add RGWRESTMgr_S3Website
Casey Bodley [Wed, 2 Jul 2025 21:01:15 +0000 (17:01 -0400)]
rgw/rest: add RGWRESTMgr_S3Website

move some s3website stuff out of RGWRESTMgr_S3::get_handler() into its
own nested RGWRESTMgr

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/main: clean up use of rgw_enable_apis
Casey Bodley [Wed, 2 Jul 2025 19:26:02 +0000 (15:26 -0400)]
rgw/main: clean up use of rgw_enable_apis

replace `get_str_vec()` with `ceph::split()`

replace `map<string, bool>` with `set<string>`

replace `count(key) > 0` with `contains(key)`

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/iam: add s3:Get/PutAccountPublicAccessBlock actions
Casey Bodley [Tue, 1 Jul 2025 03:50:37 +0000 (23:50 -0400)]
rgw/iam: add s3:Get/PutAccountPublicAccessBlock actions

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw: enforce BlockPublicAcls on CreateBucket
Casey Bodley [Tue, 1 Jul 2025 13:45:56 +0000 (09:45 -0400)]
rgw: enforce BlockPublicAcls on CreateBucket

this check is unique to account-level PublicAccessBlock configuration

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw: add helper for bucket + account PublicAccessBlock config
Casey Bodley [Mon, 30 Jun 2025 22:06:08 +0000 (18:06 -0400)]
rgw: add helper for bucket + account PublicAccessBlock config

get_public_access_conf() takes an optional account, and checks
RGW_ATTR_PUBLIC_ACCESS on that in addition to the bucket. if both attrs
are found, return the union of their configurations

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw: req_state::public_access_block is not optional
Casey Bodley [Mon, 30 Jun 2025 21:53:38 +0000 (17:53 -0400)]
rgw: req_state::public_access_block is not optional

a default-constructed PublicAccessBlockConfiguration (with all bool
members set to false) makes for a perfectly good empty state

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw: PublicAccessBlockConfiguration as raw struct
Casey Bodley [Mon, 30 Jun 2025 21:50:26 +0000 (17:50 -0400)]
rgw: PublicAccessBlockConfiguration as raw struct

we really don't need encapsulation for this

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/s3: rename req_state::bucket_access_conf to public_access_block
Casey Bodley [Mon, 30 Jun 2025 19:46:37 +0000 (15:46 -0400)]
rgw/s3: rename req_state::bucket_access_conf to public_access_block

the name reflects a PublicAccessBlock configuration that may either come
from the bucket (s3 PutPublicAccessBlock) or the account (s3control)

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw: add s3control by default to rgw_enable_apis
Casey Bodley [Thu, 3 Jul 2025 00:04:47 +0000 (20:04 -0400)]
rgw: add s3control by default to rgw_enable_apis

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 weeks agorgw/datalog: DataLogBackends::trim_entries: fix crash when target_gen > head_gen 68874/head
Oguzhan Ozmen [Tue, 19 May 2026 22:12:35 +0000 (22:12 +0000)]
rgw/datalog: DataLogBackends::trim_entries: fix crash when target_gen > head_gen

When a cluster has no sync zones (single-zone), DataLogTrimCR passes
max_marker() as the trim marker, which encodes target_gen = UINT64_MAX
from gencursor(). In DataLogBackends::trim_entries, after trimming the
head (last) generation, the break condition

    if (be->gen_id == target_gen)

is false (e.g. 0 != UINT64_MAX), so the loop attempts its increment
expression:

    be = upper_bound(be->gen_id)->second

upper_bound(head_gen) returns end(), and dereferencing end()->second
causes crash.

Fix: also break when be->gen_id >= head_gen. Once we've trimmed the
head generation there are no further backends in the map, so the
upper_bound dereference in the loop increment will be skipped.

This is a general bug that affects any cluster using max_marker() as a
trim target (i.e. every single-zone deployment).

Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
3 weeks agotest/rgw/datalog: test for trim_entries with max_marker
Oguzhan Ozmen [Tue, 19 May 2026 23:43:58 +0000 (23:43 +0000)]
test/rgw/datalog: test for trim_entries with max_marker

Verify that DataLogBackends::trim_entries does not crash when called
with max_marker() on a single-generation cluster. The bug causes
upper_bound(head_gen)->second to dereference end() (SIGSEGV)
because the only break condition checked be->gen_id == target_gen,
which is never true when target_gen is UINT64_MAX as encoded by
max_marker() and the cluster has only generation 0.

Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
3 weeks agorgw/datalog: also handle errors properly for fifo trim
Oguzhan Ozmen [Wed, 20 May 2026 13:23:29 +0000 (13:23 +0000)]
rgw/datalog: also handle errors properly for fifo trim

RGWDataChangesFIFO::trim: handle ENODATA from empty FIFO: fifo::FIFO::trim()
throws ENODATA (no_message_available) when the FIFO has no parts yet.

This manifests on clusters with rgw_default_data_log_backing=fifo when
trim_entries is called on a shard before any entries have been pushed.

Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
3 weeks agocrimson/osd: use store-specific max_object_size for the OSD-layer write check 69018/head
Kefu Chai [Wed, 20 May 2026 07:55:58 +0000 (15:55 +0800)]
crimson/osd: use store-specific max_object_size for the OSD-layer write check

is_offset_and_length_valid() checked write sizes against
osd_max_object_size (128 MiB), but SeaStore caps per-onode laddr space
at seastore_default_max_object_size (16 MiB).  Writes between the two
limits pass the OSD check, reach SeaStore, and trip
prepare_data_reservation()'s ceph_assert(), crashing the OSD and its
replicas.

Add FuturizedStore::Shard::get_max_object_size() (returns
osd_max_object_size by default) and override it in SeaStore::Shard to
return min(osd_max_object_size, max_object_size).  Convert
is_offset_and_length_valid() from a static function to a PGBackend
member that queries the store, so EFBIG reaches the client before the
write ever hits the store.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
3 weeks agocrimson/osd: only unblock wait_for_active_blocker on replica when ACTIVE 69020/head
Kefu Chai [Wed, 20 May 2026 04:03:12 +0000 (12:03 +0800)]
crimson/osd: only unblock wait_for_active_blocker on replica when ACTIVE

ReplicaActive::react(ActivateCommitted) sets ACTIVE or PEERED before
calling on_activate_committed().  Without a guard, an unconditional
unblock() on the PEERED path resets the promise, causing ops that
arrive afterward to park indefinitely (until the next on_change()).

The primary already has this guard in on_activate_complete(); mirror it
on the replica side.

See-also: 2389c32d517e
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
3 weeks agocrimson/osd: wake pgs_creating waiters in PGMap::pg_loaded() 69019/head
Kefu Chai [Wed, 20 May 2026 02:22:24 +0000 (10:22 +0800)]
crimson/osd: wake pgs_creating waiters in PGMap::pg_loaded()

wait_for_pg() parks callers on pgs_creating[pgid] when the PG isn't in
pgs yet.  pg_created() wakes those waiters; pg_loaded() didn't.  An op
that races ahead of a PG load hangs indefinitely at CreateOrWaitPG.

Add the symmetric wake-up in pg_loaded() with a conditional find --
unlike pg_created(), a loaded PG may have no waiters at all.

See-also: e6c6de335b6a
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
3 weeks agocrimson/seastore: reject oversized writes and zeros instead of aborting
Kefu Chai [Wed, 20 May 2026 07:36:51 +0000 (15:36 +0800)]
crimson/seastore: reject oversized writes and zeros instead of aborting

prepare_data_reservation() ceph_assert()s the request fits within
seastore_default_max_object_size (16 MiB), but the OSD validates writes
against osd_max_object_size (128 MiB).  Anything between the two limits
passes OSD validation then trips the assert, crashing the OSD and its
replicas.

_zero() already returned EIO for this case; mirror that in _write() and
fix _zero()'s off-by-one (>= should be >, matching the <= in the assert).

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
3 weeks agoMerge pull request #68796 from ronen-fr/wip-rf-snapreset-crimson
Ronen Friedman [Wed, 20 May 2026 11:05:09 +0000 (14:05 +0300)]
Merge pull request #68796 from ronen-fr/wip-rf-snapreset-crimson

Crimson/osd/snap-mapper: flush pending writes on pg interval change

Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
Reviewed-by: Aishwarya Mathuria <amathuri@redhat.com>
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agoMerge pull request #68880 from ronen-fr/wip-rf-asokassert-crimson
Ronen Friedman [Wed, 20 May 2026 10:50:04 +0000 (13:50 +0300)]
Merge pull request #68880 from ronen-fr/wip-rf-asokassert-crimson

crimson/osd,qa: support and test the 'assert' ASOK command

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
3 weeks agomon: Add health checker for deprecated EC plugins and techniques
Jamie Pryde [Wed, 20 May 2026 10:31:53 +0000 (11:31 +0100)]
mon: Add health checker for deprecated EC plugins and techniques

We want to reduce the number of EC plugins and techniques we support
in order to focus dev and test effort on the ones that are most
useful.

We are deprecating the following plugins and techniques in Umbrella,
and dropping support for them in the V release:
* shec
* clay
* all non-reed_sol_van jerasure techniques

This commit adds a health checker to print a warning message if the cluster
is using any of the deprecated plugins/techniques and instructs the user
to migrate objects to a different pool.

Signed-off-by: Jamie Pryde <jamiepry@uk.ibm.com>
3 weeks agoMerge pull request #67010 from bluikko/wip-doc-radosgw-ref-links-split5
bluikko [Wed, 20 May 2026 09:12:26 +0000 (16:12 +0700)]
Merge pull request #67010 from bluikko/wip-doc-radosgw-ref-links-split5

doc/radosgw: change all intra-docs links to use ref (6 of 6)

3 weeks agoMerge pull request #67008 from bluikko/wip-doc-radosgw-ref-links-split3
bluikko [Wed, 20 May 2026 09:09:48 +0000 (16:09 +0700)]
Merge pull request #67008 from bluikko/wip-doc-radosgw-ref-links-split3

doc/radosgw: change all intra-docs links to use ref (4 of 6)

3 weeks agoMerge pull request #68991 from bill-scales/dev_doc_index
Bill Scales [Wed, 20 May 2026 09:02:04 +0000 (10:02 +0100)]
Merge pull request #68991 from bill-scales/dev_doc_index

doc/dev/internals: Improve Ceph Internals TOC

Reviewed-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
3 weeks agocrimson/osd: call pubsetbuf() before open() 68861/head
Matan Breizman [Wed, 20 May 2026 08:22:22 +0000 (11:22 +0300)]
crimson/osd: call pubsetbuf() before open()

Move rdbuf()->pubsetbuf(nullptr, 0) before ofstream::open() since libstdc++
may ignore setbuf() once the filebuf is associated with a file.

```
setbuf() may only be called when the std::basic_filebuf is not associated with a file (has no effect otherwise)
```
https://en.cppreference.com/cpp/io/basic_filebuf/setbuf

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 weeks agoMerge pull request #68728 from Hezko/bugfix-14187
Hezko [Wed, 20 May 2026 07:33:12 +0000 (10:33 +0300)]
Merge pull request #68728 from Hezko/bugfix-14187

mgr/dashboard: raise an error when invalid server-address was provided

4 weeks agodoc/man: fix broken markup in cephadm.rst 69014/head
Ville Ojamo [Wed, 20 May 2026 06:39:38 +0000 (13:39 +0700)]
doc/man: fix broken markup in cephadm.rst

Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
4 weeks agodoc/rados: move label to right place in pools.rst 69013/head
Ville Ojamo [Wed, 20 May 2026 06:26:08 +0000 (13:26 +0700)]
doc/rados: move label to right place in pools.rst

The label is named setting and not unsetting, so move it from the
unsetting section to the setting section.
The label is used only once and the context in which it is used is also
more fitting for the setting section.

Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
4 weeks agoMerge pull request #67700 from mheler/wip-lc-versioned-deletes
anrao19 [Wed, 20 May 2026 06:10:21 +0000 (11:40 +0530)]
Merge pull request #67700 from mheler/wip-lc-versioned-deletes

rgw: group lifecycle versioned deletes to reduce OLH contention

4 weeks agoMerge pull request #68575 from benhanokh/dedup_filter_buckets_and_sc
Gabriel Benhanokh [Wed, 20 May 2026 06:08:08 +0000 (09:08 +0300)]
Merge pull request #68575 from benhanokh/dedup_filter_buckets_and_sc

rgw/dedup: add --allow/deny lists for bucket/storage-class

4 weeks agoMerge pull request #65611 from NitzanMordhai/wip-nitzan-autotune-mgr-stats-period
NitzanMordhai [Wed, 20 May 2026 05:05:16 +0000 (08:05 +0300)]
Merge pull request #65611 from NitzanMordhai/wip-nitzan-autotune-mgr-stats-period

mgr/DaemonServer: auto-tune stats period when message queue gets backed up

Reviewed-by: Sridhar Seshasayee <sridhar.seshasayee@ibm.com>
4 weeks agocrimson/osd: decouple snap trim initiation from scrub completion 68948/head
Ronen Friedman [Sat, 16 May 2026 14:39:51 +0000 (14:39 +0000)]
crimson/osd: decouple snap trim initiation from scrub completion

Add SnapTrimInitiate operation so kick_snap_trim() no longer calls
on_active_actmap() inline during scrub completion, which nested
conflicting with_interruption contexts and hit an assertion.

Fixes: https://tracker.ceph.com/issues/76550
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 weeks agocommon/options: improve rgw_dns_name and clarify separator 68972/head
Ville Ojamo [Mon, 18 May 2026 08:48:42 +0000 (15:48 +0700)]
common/options: improve rgw_dns_name and clarify separator

Merge the fmt_desc and long_desc into just long_desc.
Add the separator to use in long_desc that was previously only listed
in the desc attribute.

Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
4 weeks agotest: add missing includes 69007/head
Max Kellermann [Wed, 15 Apr 2026 12:38:57 +0000 (14:38 +0200)]
test: add missing includes

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
4 weeks agocrimson/seastore: clamp block_size to laddr_t::UNIT_SIZE on small-LBA devices 69006/head
Kefu Chai [Wed, 20 May 2026 00:55:55 +0000 (08:55 +0800)]
crimson/seastore: clamp block_size to laddr_t::UNIT_SIZE on small-LBA devices

Seastar's file::disk_write_dma_alignment() faithfully reports what the
kernel exposes for the underlying device. On block devices in 512-byte
LBA mode (the factory default for many NVMe SSDs), it correctly returns
512.

SeaStore's internal addressing, however, operates at a 4 KiB page
granularity defined by laddr_t::UNIT_SIZE, and SeaStore::_mount() asserts
that block_size >= UNIT_SIZE. As a result, ceph-osd-crimson --mkfs
--osd-objectstore seastore aborts on any device shipped in 512-LBA
mode:

  seastore.cc:344  ceph_assert(block_size >= laddr_t::UNIT_SIZE)
  seastore requires a device block size of at least 4096 bytes,
  but the primary device at '/var/lib/ceph/osd/ceph-N/block'
  reports block_size=512

The reported alignment is not wrong; it is the minimum Linux enforces
for O_DIRECT on that device, so users with optimization in mind can
override it through io_properties.yaml. But SeaStore can run correctly
on 512-LBA devices as long as it issues only 4 KiB-aligned I/O (which
is also 512-aligned, so the device is happy). Clamp the captured
block_size to laddr_t::UNIT_SIZE so SeaStore can host an OSD on
512-LBA storage without operator intervention, while still honoring
larger device-reported alignments when present.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agoMerge PR #68987 into main
Patrick Donnelly [Wed, 20 May 2026 00:30:23 +0000 (20:30 -0400)]
Merge PR #68987 into main

* refs/pull/68987/head:
script/ptl-tool: use provided base even in conflict

Reviewed-by: Yuri Weinstein <yweins@redhat.com>
4 weeks agoMerge pull request #68810 from tchaikov/doc-min-compat-client-kernel
Kefu Chai [Tue, 19 May 2026 23:57:50 +0000 (07:57 +0800)]
Merge pull request #68810 from tchaikov/doc-min-compat-client-kernel

doc/rados: add kernel client notes to require_min_compat_client

Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
4 weeks agoneocls log trimming (time based): fix infinite loop on ENODATA
Oguzhan Ozmen [Tue, 12 May 2026 19:43:13 +0000 (19:43 +0000)]
neocls log trimming (time based): fix infinite loop on ENODATA

This is essentially the same as previous commit.

The time-based use_awaitable_t overload of trim() has the same
issue as the marker-based overload: the try-catch for ENODATA is inside
the for(;;) loop, so ENODATA is caught and swallowed, causing the loop
to retry forever.

Fixes: https://tracker.ceph.com/issues/76563
Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
4 weeks agoneocls log trimming (marker based): fix infinite loop on ENODATA
Oguzhan Ozmen [Tue, 12 May 2026 19:38:12 +0000 (19:38 +0000)]
neocls log trimming (marker based): fix infinite loop on ENODATA

The use_awaitable_t overload of trim() has the try-catch for
ENODATA (no_message_available) inside the for(;;) loop. When
cls_log_trim returns ENODATA (i.e., nothing left to trim), the exception is
caught and silently swallowed execution falls through the catch block
back to for(;;), retrying the trim forever.

This should be a rare condition as 3 conditions should be met in a
single-cluster (once configured as multisite):
 - a realm/period exists
 - zone endpoints are configured
 - data_log* objects exist

Since in a properly setup multisite cluster, data churn is continious so
hard to notice. In the case client reported, the multisite cluster was
reverted back to single site so data_logs have no data all the time;
hence, the issue is pronounced.

This fix adds co_return inside the catch block so ENODATA exits the loop.

Fixes: https://tracker.ceph.com/issues/76563
Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
4 weeks agoMerge pull request #68997 from tchaikov/wip-debian-strip-osd
Casey Bodley [Tue, 19 May 2026 22:13:38 +0000 (18:13 -0400)]
Merge pull request #68997 from tchaikov/wip-debian-strip-osd

debian/rules: strip ceph-osd-classic and ceph-osd-crimson

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 weeks agoMerge pull request #68966 from anthonyeleven/nobuild
Anthony D'Atri [Tue, 19 May 2026 19:14:01 +0000 (12:14 -0700)]
Merge pull request #68966 from anthonyeleven/nobuild

doc/start: Clarify doc building and begin list of conventions

4 weeks agoqa: fix TEST_mon_features persistent feature checks in mon/misc.sh 69005/head
Jaya Prakash [Tue, 19 May 2026 17:02:22 +0000 (17:02 +0000)]
qa: fix TEST_mon_features persistent feature checks in mon/misc.sh

The test reused the "tentacle" jq filter while validating
"nvmeof_beacon_diff", causing the comparison to fail. Also fix
the umbrella feature validation and update the expected
persistent feature count.

Fixes: https://tracker.ceph.com/issues/76472
Signed-off-by: Jaya Prakash <jayaprakash@ibm.com>
4 weeks agoscript/ptl-tool: allow automatic links for commit sha 69004/head
Patrick Donnelly [Tue, 19 May 2026 16:55:21 +0000 (12:55 -0400)]
script/ptl-tool: allow automatic links for commit sha

Wrapping in backticks renders it as teletype text and prevents Github
from automatically generating links to the commits.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks agoMerge pull request #68799 from tchaikov/debian-cephfs-top-manpage
Kefu Chai [Tue, 19 May 2026 15:24:33 +0000 (23:24 +0800)]
Merge pull request #68799 from tchaikov/debian-cephfs-top-manpage

debian: package manpage for cephfs-top

Reviewed-by: John Mulligan <jmulligan@redhat.com>
4 weeks agomgr/DaemonServer: auto-tune stats period when message queue gets backed up 65611/head
Nitzan Mordechai [Thu, 18 Sep 2025 05:16:51 +0000 (05:16 +0000)]
mgr/DaemonServer: auto-tune stats period when message queue gets backed up

The mgr can get overwhelmed when there's a lot of cluster activity and
daemons are sending stats reports faster than we can process them.
This commit adds logic to monitor the messenger queue depth and bump
up mgr_stats_period when things get congested. This reduces the
frequency of daemon stat reports, allowing the mgr to process existing
reports without being overwhelmed by new ones. The period automatically
scales back down when the queue clears up.

Added mgr_stats_period_autotune (on by default) and a queue threshold
setting. Recovery happens automatically when the queue clears up.
Max period is capped at 60 seconds to prevent excessive stat delays.

Fixes: https://tracker.ceph.com/issues/73151
Signed-off-by: Nitzan Mordechai <nmordech@ibm.com>
4 weeks ago.github/workflows/releng-audit: update python to 3.12 68998/head
Patrick Donnelly [Tue, 19 May 2026 14:12:43 +0000 (10:12 -0400)]
.github/workflows/releng-audit: update python to 3.12

py3.10 is EOL this year.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks ago.github/workflows/releng-audit: update workflows
Patrick Donnelly [Tue, 19 May 2026 14:10:33 +0000 (10:10 -0400)]
.github/workflows/releng-audit: update workflows

To avoid this warning:

> Warning: Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v3, actions/setup-python@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks agoMerge pull request #68137 from lumir-sliva/fix/rgw-replication-duplicate-arn
Casey Bodley [Tue, 19 May 2026 13:37:36 +0000 (09:37 -0400)]
Merge pull request #68137 from lumir-sliva/fix/rgw-replication-duplicate-arn

rgw: avoid doubled ARN in GetBucketReplication for pre-existing data

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 weeks agodebian/rules: strip ceph-osd-classic and ceph-osd-crimson 68997/head
Kefu Chai [Tue, 19 May 2026 12:58:10 +0000 (20:58 +0800)]
debian/rules: strip ceph-osd-classic and ceph-osd-crimson

override_dh_strip enumerates each binary package explicitly. It was not
updated when ceph-osd was split into the ceph-osd-classic and
ceph-osd-crimson implementation packages, so the OSD binaries in those
two packages are shipped unstripped (ceph-osd-crimson installs at ~4.6
GiB) and their -dbg packages are left empty.

Add the missing dh_strip invocations so the OSD binaries are stripped
and their debug symbols land in the corresponding -dbg packages, as is
already done for every other binary package.

Fixes: a37b5b5bde8c
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agomgr/dashboard: fix remaining FA icon references and test failures 68962/head
Afreen Misbah [Mon, 18 May 2026 20:06:35 +0000 (01:36 +0530)]
mgr/dashboard: fix remaining FA icon references and test failures

- Fix icon size mismatches and HTML lint errors
- Fix remaining FA icon references in tests
- Replace FA icons with Carbon in upgrade component:
  use cds-inline-loading for spinners, cd-icon for status icons
- Update test selectors for Carbon icon queries

Fixes: https://tracker.ceph.com/issues/76631
Signed-off-by: Afreen Misbah <afreen23@gmail.com>
Assisted-by: Claude
4 weeks agomgr/dashboard: fix filter icon alignment in table toolbar
Afreen Misbah [Sun, 17 May 2026 16:43:59 +0000 (22:13 +0530)]
mgr/dashboard: fix filter icon alignment in table toolbar

Replace Bootstrap inline styles with proper CSS class for filter
icon and select dropdowns alignment. Created filter-wrapper class
to properly align filter icon with select elements using flexbox.

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agomgr/dashboard: fix missing loader and zone group icon
Afreen Misbah [Sun, 17 May 2026 15:07:45 +0000 (20:37 +0530)]
mgr/dashboard: fix missing loader and zone group icon

- Add state="active" to cds-inline-loading in card-row component
  to properly show loading spinner for table row actions
- Replace parentChild icon with clusterIcon (web-services--cluster)
  for zone group representation in RGW multisite
- Remove parentChild from Icons enum and replace with
  WebServicesCluster in components.module.ts
- Import ComponentsModule in rgw.module.ts for cd-icon support

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agomgr/dashboard: update health-icon pipe tests for Carbon icons
Afreen Misbah [Sun, 17 May 2026 10:26:22 +0000 (15:56 +0530)]
mgr/dashboard: update health-icon pipe tests for Carbon icons

Update test expectations to match Carbon icon names instead of
fork-awesome class names:
- 'fa fa-check-circle' -> 'success'
- 'fa fa-exclamation-triangle' -> 'warningAltFilled'
- 'fa fa-exclamation-circle' -> 'error'

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agomgr/dashboard: replace icons.spin with Carbon loading components
Afreen Misbah [Sun, 17 May 2026 09:48:04 +0000 (15:18 +0530)]
mgr/dashboard: replace icons.spin with Carbon loading components

Replace fork-awesome spinner classes with appropriate Carbon loading components:

- cds-inline-loading: for inline spinners (action feedback, status updates)
  * table row actions (executing/removing)
  * upgrade status text/buttons
  * loading panel alerts

- cds-loading size="sm": for section data loading
  * tree view loading (crushmap, multisite-details, cephfs-directories)
  * progress component operations

- cds-loading size="lg": for dashboard/overview loading
  * rgw-overview-dashboard cards
  * multi-cluster overview

Added LoadingModule and InlineLoadingModule imports to:
- block.module.ts
- cephfs.module.ts
- cluster.module.ts
(rgw.module.ts and components.module.ts already had them)

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agomgr/dashboard: replace fork-awesome size classes with Carbon sizes
Afreen Misbah [Sun, 17 May 2026 09:19:06 +0000 (14:49 +0530)]
mgr/dashboard: replace fork-awesome size classes with Carbon sizes

Replace icons.large/large2x/large3x with Carbon icon sizes:
- icons.large -> icons.size24
- icons.large2x -> icons.size32
- icons.large3x -> icons.size32

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.html
     - rebase conflicts

4 weeks agomgr/dashboard: remove fork-awesome package dependency
Afreen Misbah [Sun, 17 May 2026 01:13:30 +0000 (06:43 +0530)]
mgr/dashboard: remove fork-awesome package dependency

- Remove fork-awesome 1.2.0 from dependencies
- Update package-lock.json accordingly

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agomgr/dashboard: remove font awesome references
Afreen Misbah [Sun, 17 May 2026 00:14:41 +0000 (05:44 +0530)]
mgr/dashboard: remove font awesome references

- Remove .fa and .fa-* class styles from component SCSS files
- Remove FA icon spacing rules from global styles
- Clean up .fa-stack styles (FA stacking feature)
- Remove FA-specific color styles
- Remove FA icons

Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
4 weeks agoMerge pull request #68986 from rhcs-dashboard/carbonize-rgw-dash
Afreen Misbah [Tue, 19 May 2026 12:54:27 +0000 (18:24 +0530)]
Merge pull request #68986 from rhcs-dashboard/carbonize-rgw-dash

mgr/dashboard: carbonize RGW overview dashboard

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 weeks agodoc/dev/internals: Improve Ceph Internals TOC 68991/head
Bill Scales [Tue, 19 May 2026 06:05:13 +0000 (07:05 +0100)]
doc/dev/internals: Improve Ceph Internals TOC

The Ceph internals section of the docs is a bit of a mess
as far as the table of contents is concerned. This commit
tries to add a bit more structure grouping topics by
area and trying to arrange them in a more logical order.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
4 weeks agoosd: Change tabs to spaces in _merge_object_divergent_entries 68727/head
Alex Ainscow [Wed, 6 May 2026 12:10:51 +0000 (13:10 +0100)]
osd: Change tabs to spaces in _merge_object_divergent_entries

This function is difficult to review, because of the use of tabs. This change replaces each tab with 8 spaces.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
4 weeks agoosd: Divergent logs for pure partial writes should roll back mising list when merged.
Alex Ainscow [Fri, 1 May 2026 20:36:25 +0000 (21:36 +0100)]
osd: Divergent logs for pure partial writes should roll back mising list when merged.

When a log was applied for a partial write to an object that is async recovering, the
log will be rolled forward and the missing list updated.

If this log becomes divergent, then we must rollback the update to the missing list
in the merge.

Fixes: https://tracker.ceph.com/issues/75962
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
4 weeks agoMerge PR #68816 into main
Patrick Donnelly [Tue, 19 May 2026 12:18:54 +0000 (08:18 -0400)]
Merge PR #68816 into main

* refs/pull/68816/head:
common/admin_socket: use POSIX timer for delayed signal delivery

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
4 weeks agoMerge PR #68560 into main
Patrick Donnelly [Tue, 19 May 2026 12:14:24 +0000 (08:14 -0400)]
Merge PR #68560 into main

* refs/pull/68560/head:
test/mds: fix flaky RepeatedQuiesceAwait

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks agoMerge pull request #68988 from rhcs-dashboard/fix-tag-color-table
Afreen Misbah [Tue, 19 May 2026 11:18:16 +0000 (16:48 +0530)]
Merge pull request #68988 from rhcs-dashboard/fix-tag-color-table

mgr/dashboard: fix tag colors not applied in table cells

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 weeks agoMerge pull request #68478 from mheler/wip-bug-75958
mheler [Tue, 19 May 2026 11:03:31 +0000 (06:03 -0500)]
Merge pull request #68478 from mheler/wip-bug-75958

rgw/gc: mark rgw_gc_max_objs as startup-only

4 weeks agoMerge pull request #68213 from lumir-sliva/fix/mgr-perf-schema-empty-counters
SrinivasaBharathKanta [Tue, 19 May 2026 09:26:14 +0000 (14:56 +0530)]
Merge pull request #68213 from lumir-sliva/fix/mgr-perf-schema-empty-counters

mgr: guard close_section calls in get_perf_schema_python

4 weeks agomgr/dashboard: carbonize RGW overview dashboard 68986/head
Afreen Misbah [Tue, 19 May 2026 00:09:47 +0000 (05:39 +0530)]
mgr/dashboard: carbonize RGW overview dashboard

Fixes: https://tracker.ceph.com/issues/76684
Signed-off-by: Afreen Misbah <afreen23.git@gmail.com>
Assisted-by: Claude
4 weeks agoMerge pull request #67763 from kamoltat/wip-ksirivad-fix-cmpiler-warn
SrinivasaBharathKanta [Tue, 19 May 2026 09:17:33 +0000 (14:47 +0530)]
Merge pull request #67763 from kamoltat/wip-ksirivad-fix-cmpiler-warn

src/msg/async/Event: collect and ignore return value for read()

4 weeks agoMerge pull request #68952 from rhcs-dashboard/remove-ng-click-outside
Afreen Misbah [Tue, 19 May 2026 08:21:09 +0000 (13:51 +0530)]
Merge pull request #68952 from rhcs-dashboard/remove-ng-click-outside

mgr/dashboard: Remove `ng-click-outside` and `ngx-toast`

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 weeks agoMerge pull request #68872 from ceph/kchheda3-fix-build-break
Kefu Chai [Tue, 19 May 2026 04:18:34 +0000 (12:18 +0800)]
Merge pull request #68872 from ceph/kchheda3-fix-build-break

osd/test: Fix build breakage when WITH_EC_ISA_PLUGIN is OFF

Reviewed-by: Alex Ainscow <aainscow@uk.ibm.com>
Reviewed-by: Kefu Chai <k.chai@proxmox.com>
4 weeks agorgw/dedup: dedup-filter - add empty-file validation, fix dump default param, fix... 68575/head
benhanokh [Mon, 18 May 2026 06:38:35 +0000 (09:38 +0300)]
rgw/dedup: dedup-filter - add empty-file validation, fix dump default param, fix typos

Signed-off-by: Gabriel BenHanokh <gbenhano@redhat.com>
4 weeks agoMerge pull request #68946 from tchaikov/wip-doc-vstart
Kefu Chai [Tue, 19 May 2026 02:41:48 +0000 (10:41 +0800)]
Merge pull request #68946 from tchaikov/wip-doc-vstart

doc/dev: refresh vstart.sh options in dev_cluster_deployment

Reviewed-by: Vikhyat Umrao <vikhyat@ibm.com>
4 weeks agoMerge pull request #68758 from tchaikov/cmake-build-isal-lib
Kefu Chai [Tue, 19 May 2026 02:22:00 +0000 (10:22 +0800)]
Merge pull request #68758 from tchaikov/cmake-build-isal-lib

cmake/BuildISAL: build and install library targets only

Reviewed-by: Jamie Pryde <jamiepry@uk.ibm.com>
4 weeks agomgr/dashboard: fix tag colors not applied in table cells 68988/head
Afreen Misbah [Tue, 19 May 2026 00:26:05 +0000 (05:56 +0530)]
mgr/dashboard: fix tag colors not applied in table cells

Regression from 15ca5d7ab9c.

Changed class to ngClass due to same attribute linter error.
This caused color classes to be overwritten  by carbon classes.

Fixes: https://tracker.ceph.com/issues/76685
Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
4 weeks agoscript/ptl-tool: use provided base even in conflict 68987/head
Patrick Donnelly [Tue, 19 May 2026 00:25:57 +0000 (20:25 -0400)]
script/ptl-tool: use provided base even in conflict

It is sometimes useful to base off a local branch instead of a common
branch.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 weeks agoMerge pull request #68178 from rhcs-dashboard/start-with-libvirt-group
Afreen Misbah [Tue, 19 May 2026 00:24:07 +0000 (05:54 +0530)]
Merge pull request #68178 from rhcs-dashboard/start-with-libvirt-group

mgr/dashboard: run kcli commands in libvritd group

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 weeks agodoc/start: Clarify doc building and begin list of conventions 68966/head
Anthony D'Atri [Mon, 18 May 2026 00:52:22 +0000 (20:52 -0400)]
doc/start: Clarify doc building and begin list of conventions

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
4 weeks agomgr/dashboard: fix build and test failures from ngx-toastr removal 68952/head
Afreen Misbah [Mon, 18 May 2026 15:15:45 +0000 (20:45 +0530)]
mgr/dashboard: fix build and test failures from ngx-toastr removal

Assisted-by: Claude
Signed-off-by: Afreen Misbah <afreen@ibm.com>
4 weeks agorgw/dedup: fix negative errno codes in filter and radosgw-admin
benhanokh [Mon, 11 May 2026 10:58:10 +0000 (13:58 +0300)]
rgw/dedup: fix negative errno codes in filter and radosgw-admin

Signed-off-by: benhanokh <gbenhano@redhat.com>
4 weeks agorgw/dedup: add --allow/deny-bucket-list and --allow/deny-storage-class-list to dedup...
Gabriel BenHanokh [Thu, 23 Apr 2026 14:16:31 +0000 (14:16 +0000)]
rgw/dedup: add --allow/deny-bucket-list and --allow/deny-storage-class-list to dedup commands
Resolves: bz#2413730
Signed-off-by: Gabriel BenHanokh <gbenhano@redhat.com>
4 weeks agorgw: Remove blank file. 68979/head
Nathan Hoad [Mon, 18 May 2026 17:41:26 +0000 (13:41 -0400)]
rgw: Remove blank file.

Looks like the meaningful bits of this were removed in 2025.

Signed-off-by: Nathan Hoad <nhoad@bloomberg.net>
4 weeks agolibrados/asio: clear cancellation slot in associated executor 68873/head
Casey Bodley [Tue, 12 May 2026 18:58:16 +0000 (14:58 -0400)]
librados/asio: clear cancellation slot in associated executor

the librados callback function `AsyncOp::aio_dispatch()` runs on
Objecter's finisher strand executor, and dispatches the completion
handler to its associated executor

asio cancellation is not thread-safe, so should be synchronized on that
associated executor. move the call to `slot.clear()` from that librados
callback into the AsyncHandler wrapper so it doesn't run until we've
switched to the correct executor

because our `op_cancellation` handler depends on an `AioCompletion`
pointer, we have to clear the cancellation slot before that
`AioCompletion` lifetime ends

Fixes: https://tracker.ceph.com/issues/73475
Signed-off-by: Casey Bodley <cbodley@redhat.com>
4 weeks agolibrados/asio: extend lifetime of AioCompletion
Casey Bodley [Tue, 12 May 2026 18:55:31 +0000 (14:55 -0400)]
librados/asio: extend lifetime of AioCompletion

pass the unique_aio_completion_ptr into a wrapped completion handler to
extend its lifetime past the end of the AsyncOp::aio_dispatch() callback

Signed-off-by: Casey Bodley <cbodley@redhat.com>
4 weeks agoMerge pull request #68967 from rhcs-dashboard/remove-mirroing
Afreen Misbah [Mon, 18 May 2026 17:10:47 +0000 (22:40 +0530)]
Merge pull request #68967 from rhcs-dashboard/remove-mirroing

mgr/dashboard: Remove cephfs mirroring navigation from Umbrella

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 weeks agoMerge pull request #68970 from rhcs-dashboard/nfs-terminology
Afreen Misbah [Mon, 18 May 2026 17:09:48 +0000 (22:39 +0530)]
Merge pull request #68970 from rhcs-dashboard/nfs-terminology

mgr/dashboard: NFS enhancements - terminology alignment

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 weeks agoMerge pull request #68782 from smanjara/wip-fix-frontend-exception
Shilpa Jagannath [Mon, 18 May 2026 16:54:01 +0000 (09:54 -0700)]
Merge pull request #68782 from smanjara/wip-fix-frontend-exception

rgw: catch exception from abort_early() on client disconnect

4 weeks agomgr/dashboard: Remove `ng-click-outside` and `ngx-toastr`package
Afreen Misbah [Mon, 18 May 2026 11:33:16 +0000 (17:03 +0530)]
mgr/dashboard: Remove `ng-click-outside` and `ngx-toastr`package

Fixes https://tracker.ceph.com/issues/70934
Fixes https://tracker.ceph.com/issues/76631

Signed-off-by: Afreen Misbah <afreen@ibm.com>
4 weeks agoMerge pull request #68685 from perezjosibm/wip-perezjos-doc-crimson-dev
Jose Juan Palacios-Perez [Mon, 18 May 2026 15:20:49 +0000 (16:20 +0100)]
Merge pull request #68685 from perezjosibm/wip-perezjos-doc-crimson-dev

doc: crimson/dev - add a vstart.sh example using SeaStore options, minor formatting fixes

4 weeks agoMerge pull request #68891 from rhcs-dashboard/carbonize-cluster-wide-osd-flags-modal
Afreen Misbah [Mon, 18 May 2026 14:55:15 +0000 (20:25 +0530)]
Merge pull request #68891 from rhcs-dashboard/carbonize-cluster-wide-osd-flags-modal

mgr/dashboard: Carbonize cluster-wide OSD flags modal

Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: pujaoshahu <pshahu@redhat.com>
4 weeks agoMerge pull request #68971 from rhcs-dashboard/carbonize-upgrade
Afreen Misbah [Mon, 18 May 2026 14:54:28 +0000 (20:24 +0530)]
Merge pull request #68971 from rhcs-dashboard/carbonize-upgrade

Carbonize upgrade page

Reviewed-by: Devika Babrekar <devika.babrekar@ibm.com>
4 weeks agodoc:crimson-dev: add RANDOM_BLOCK_SSD usage example, fix indentation 68685/head
Jose J Palacios-Perez [Fri, 8 May 2026 09:58:13 +0000 (10:58 +0100)]
doc:crimson-dev: add RANDOM_BLOCK_SSD usage example, fix indentation

Signed-off-by: Jose J Palacios-Perez <perezjos@uk.ibm.com>
4 weeks agoMerge PR #68937 into main
Patrick Donnelly [Mon, 18 May 2026 14:20:08 +0000 (10:20 -0400)]
Merge PR #68937 into main

* refs/pull/68937/head:
.github/workflows/releng-audit: group events to serialize executions
.github/workflows/releng-audit: remove override on reopen
.github/workflows/releng-audit: refactor auth check to function

Reviewed-by: Yuri Weinstein <yweins@redhat.com>
4 weeks agocephadm: disable UDP in samples/nfs.json for test_cephadm Ganesha 68976/head
Kobi Ginon [Mon, 18 May 2026 13:45:32 +0000 (16:45 +0300)]
cephadm: disable UDP in samples/nfs.json for test_cephadm Ganesha
test_cephadm.sh deploys NFS through cephadm _orch deploy using
src/cephadm/samples/nfs.json. That sample is separate from the mgr
ganesha.conf.j2 template, which already sets Enable_UDP = false.
Without that setting, Ganesha on Rocky 10 (ceph-ci image) fails during
startup with "Cannot register NFS V3 on UDP", so test_cephadm.sh never
sees ganesha.nfsd listening on port 2049.
Add Protocols = 3, 4 and Enable_UDP = false to NFS_CORE_PARAM so the
sample matches the orchestrator defaults.
Fixes: https://tracker.ceph.com/issues/76295
Signed-off-by: Kobi Ginon <kginon@redhat.com>
4 weeks agocrimson/os/seastore: yield to user IO between cleaner cycles 68961/head
Shai Fultheim [Sun, 17 May 2026 08:27:00 +0000 (11:27 +0300)]
crimson/os/seastore: yield to user IO between cleaner cycles

After the deadlock fix in the preceding commit ("fix IO-block deadlock
when cleaner is sleeping"), the cleaner stays awake while user IO is
blocked, but a second symptom appears at high alive_ratio (~0.79): the
cleaner's segment-allocate-and-fill loop runs tightly enough that the
user-IO continuation scheduled by maybe_wake_blocked_io() never gets a
chance to retry try_reserve_io() before the cleaner consumes the
projected_avail headroom again on its next iteration. User IO wakes,
sees projected_avail still below hard_limit, re-blocks immediately.

In the qa/standalone/crimson randwrite bench this manifests as: cluster
makes 500-700 GB of progress, then user_written counter freezes for
~75 seconds (watchdog window) while the cleaner is fully busy.

In BackgroundProcess::run(), after each do_background_cycle, if user IO
is currently blocked, yield to the reactor. That gives the woken
user-IO continuation a chance to slot in and complete a reservation
before the cleaner starts its next reservation-consuming cycle.

With this change, the same bench runs 19 minutes (vs 11-16 min) and
writes 785 GB user (vs 506-692 GB) before the next cluster limit hits,
which is the inherent throughput cap at alive_ratio 0.79 where each
reclaim only frees ~21% of segment size — not a coordination bug.

Signed-off-by: Shai Fultheim <shai.fultheim@gmail.com>
4 weeks agocrimson/os/seastore: fix IO-block deadlock when cleaner is sleeping
Shai Fultheim [Sun, 17 May 2026 04:43:19 +0000 (07:43 +0300)]
crimson/os/seastore: fix IO-block deadlock when cleaner is sleeping

Two coordinated changes that together close a stall observed at high
alive_ratio in the qa/standalone/crimson randwrite bench (one OSD
frozen for 70+ minutes, alive_ratio ~0.79, projected_avail_ratio ~0.10,
slow_ops accumulating indefinitely).

1. SegmentCleaner::should_clean_space() used segments.get_available_ratio()
   (actual ratio) while should_block_io_on_clean() used
   get_projected_available_ratio() (actual minus in-flight reservations).
   When the actual ratio sat just above available_ratio_hard_limit but
   the projected ratio dipped below it, IO would block while the cleaner
   slept. Make should_clean_space() also trip on the projected ratio.

2. BackgroundProcess::reserve_projected_usage() did not wake the
   background process when an IO blocked. With the cleaner asleep and
   all IO blocked, nothing called maybe_wake_blocked_io() (no
   release_projected_usage runs without completing IO; no segment
   release runs without the cleaner). Kick do_wake_background() at the
   point of blocking, so the cleaner re-evaluates and runs.

Signed-off-by: Shai Fultheim <shai.fultheim@gmail.com>
4 weeks agoMerge pull request #68868 from rhcs-dashboard/fix-edit
Afreen Misbah [Mon, 18 May 2026 13:20:11 +0000 (18:50 +0530)]
Merge pull request #68868 from rhcs-dashboard/fix-edit

mgr/dashboard: Fix edit and delete access for pool-manager role

Reviewed-by: Abhishek Desai <abhishek.desai1@ibm.com>
4 weeks agoMerge pull request #68951 from rhcs-dashboard/revert-nx
Afreen Misbah [Mon, 18 May 2026 13:19:34 +0000 (18:49 +0530)]
Merge pull request #68951 from rhcs-dashboard/revert-nx

Revert: mgr/dashboard: reverting the nx tool changes

Reviewed-by: Nizamudeen A <nia@redhat.com>
4 weeks agomgr/dashboard: Remove cephfs mirroring navigation from Umbrella 68967/head
Dnyaneshwari Talwekar [Mon, 18 May 2026 04:49:36 +0000 (10:19 +0530)]
mgr/dashboard: Remove cephfs mirroring navigation from Umbrella

Fixes: https://tracker.ceph.com/issues/76649
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
4 weeks agoMerge pull request #67547 from mheler/wip-list-restorestatus
mheler [Mon, 18 May 2026 11:23:15 +0000 (06:23 -0500)]
Merge pull request #67547 from mheler/wip-list-restorestatus

rgw: add RestoreStatus support to object listings

4 weeks agomgr/dashboard: fix logs e2e tests after carbonization 68971/head
Afreen Misbah [Mon, 18 May 2026 10:01:58 +0000 (15:31 +0530)]
mgr/dashboard: fix logs e2e tests after carbonization

Update e2e test selectors to match the new Carbon component structure.
The .card-body and .message classes were replaced with .log-viewer
and .log-entry__message after carbonizing the logs component.

Assisted-by: Claude
Signed-off-by: Afreen Misbah <afreen@ibm.com>