David Galloway [Fri, 17 Jul 2026 18:34:44 +0000 (14:34 -0400)]
container: default FROM_IMAGE to Rocky Linux 10
Since tentacle, the preferred base image for ceph containers has been
Rocky Linux 10, and the CI tag-naming logic in build.sh already assumes
rockylinux-10 is the default fromtag for every branch except reef and
squid. The actual build default was never flipped, though: anything
that ran build.sh without FROM_IMAGE set (e.g. the release container
job in ceph-build) still got a CentOS Stream 9 base.
Flip the Containerfile ARG and the build.sh fallback to
docker.io/rockylinux/rockylinux:10 so umbrella and later build from
Rocky 10 by default. Builds that want a different base can still pass
FROM_IMAGE explicitly, as the CI pipeline does.
Signed-off-by: David Galloway <david.galloway@ibm.com>
Anoop C S [Wed, 15 Jul 2026 18:41:13 +0000 (00:11 +0530)]
cephadm/smb: Update CTDB bind mount for new socket path
Samba recently changed CTDB to derive its runtime paths from Samba's
configure options instead of using a monolithic CTDB_RUNDIR[1].
With current packaging[2], the CTDB socket path moved from
/var/run/ctdb/ctdbd.socket to /run/samba/ctdb/ctdbd.socket.
Update the CTDB runtime bind mount target from /var/run/ctdb to
/run/samba/ctdb to match the new CTDB_SOCKETDIR. Additionally,
create the CTDB pid directory, /run/ctdb, and lock directory,
/var/lib/samba/lock/ctdb, on the host side as they are hidden
when their parent directories are bind mounted over.
Ideally these directories should be created by sambacc but sambacc is
included in samba-container images that may be built with different
Samba packages where these path configurations might not hold true.
Kefu Chai [Fri, 23 Jan 2026 07:04:47 +0000 (15:04 +0800)]
debian/rules: exclude ceph-osd-crimson from dwz compression
When building with DWZ enabled, the debian packaging fails with:
```
dh_dwz: error: Aborting due to earlier error
```
Running the dwz command manually reveals the root cause:
```
$ dwz -mdebian/ceph-osd-crimson/usr/lib/debug/.dwz/x86_64-linux-gnu/ceph-osd-crimson.debug \
-M/usr/lib/debug/.dwz/x86_64-linux-gnu/ceph-osd-crimson.debug -- \
debian/ceph-osd-crimson/usr/bin/ceph-osd-crimson \
debian/ceph-osd-crimson/usr/bin/crimson-store-nbd
dwz: debian/ceph-osd-crimson/usr/bin/ceph-osd-crimson: Too many DIEs, not optimizing
dwz: Too few files for multifile optimization
```
The dwz tool has a limit on the number of DWARF DIEs (Debug Information
Entries) it can process. The ceph-osd-crimson binary, being a large C++
executable with extensive template usage, exceeds this limit, causing
dwz to exit with status 1 and fail the build.
This change excludes only ceph-osd-crimson from dwz processing using
the -X flag, allowing other binaries in the package to still benefit
from DWARF compression while avoiding the build failure.
Please note, we always disable DWZ in ceph-build's ceph-dev-pipeline.
* refs/pull/68813/head:
tools/cephfs: make journal pointer/header failure explicit
doc/cephfs: add note explainin the new batching technique
tools/cephfs: document --max-rss usage in first-damage.py
qa: test cephfs-journal-recovery event recover_dentries summary
tools/cephfs: flush every journal event as soon as it is scanned
Reviewed-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Naman Munet [Wed, 15 Jul 2026 14:11:14 +0000 (19:41 +0530)]
mgr/dashboard: services page flickering with empty table
fixes: https://tracker.ceph.com/issues/78247
why the changes were made:
The Services table had autoSave enabled by default, which persists table state (including sort configuration) to browser localStorage. This created a conflict because:
The table uses server-side pagination ([serverSide]="true")
The table auto-reloads every 5 seconds ([autoReload]="5000")
On initialization, the table would load stale sort configuration from localStorage
This cached sort state would override the intended default sort (by service_name ascending)
User sort interactions would be saved to localStorage but could conflict with server-side sort handling
* refs/pull/69320/head:
qa:/cephfs: separate out ceph-fuse upgrade tests under fs:upgrade
qa/cephfs: reject ceph-fuse upgrade jobs to reduce failure noise
rimson/net: cap outgoing message batch size to prevent seastar packet fragment overflow
During heavy backfill, sweep_out_pending_msgs_to_sent() could accumulate
more than 65535 buffer fragments in a single bufferlist, overflowing
seastar's uint16_t packet fragment counter and triggering an assertion.
Limit the sweep to crimson_osd_max_send_buffers fragments
per write; remaining messages are sent in subsequent dispatch iterations.
Afreen Misbah [Thu, 25 Jun 2026 18:58:06 +0000 (00:28 +0530)]
mgr/dashboard: fix hardware status parsing for health
Atollon return status as a plain string ("OK") instead of
the dict format ({"health": "OK", "state": "Enabled"}) used by
other BMCs. This caused KeyError/AttributeError.
Added _get_health() helper that handles both formats:
- dict with nested health key
- plain string status
- missing or non-dict components
Reviewed-by: Redouane Kachach <rkachach@redhat.com> Reviewed-by: Laura Flores <lflores@redhat.com> Reviewed-by: Adam C. Emerson <aemerson@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Sun Yuechi [Mon, 13 Jul 2026 18:56:23 +0000 (11:56 -0700)]
pybind: write Tempita-processed pyx to the build directory
distutils_add_cython_module() runs setup.py with WORKING_DIRECTORY set
to the source directory, so every build leaks
{rados,cephfs,rbd,rgw}_processed.pyx into the source tree as untracked
files. Write the file to CYTHON_BUILD_DIR (already exported by that
CMake function) when set, keeping the cwd fallback for standalone
invocations.
The .pyx no longer sits next to the bindings' .pxd files, so add each
binding's source directory to include_path. Drop the build_dir
argument: it has no effect on absolute source paths.
Patrick Donnelly [Mon, 13 Jul 2026 18:24:26 +0000 (14:24 -0400)]
script/ptl-tool: handle cherry-pick conflicts on branch-specific commits
Previously, ConflictSimulationCheck only anticipated merge conflicts
when simulating upstream cherry-picks. If a branch-specific commit (such
as test repo branch adjustments or backport metadata changes) failed to
apply cleanly to the target base branch, the script threw an unhandled
GitCommandError and crashed with an unhandled traceback.
Wrap branch-specific commit cherry-picks in a try...except block. When a
conflict occurs, abort the cherry-pick, record a "Rebase Required"
simulation failure in the audit report, and either prompt the user in
interactive mode or gracefully halt check execution in CI mode.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
cephadm: use release/autobuild .asc instead of .gpg for repo_gpgkey
release.gpg no longer exists at download.ceph.com/keys/ (moved to
/keys/old/, last updated 2020-08-21). Only release.asc is current and
maintained. autobuild.gpg still resolves but is inconsistent with this
and could rot the same way.
repo_gpgkey() now returns the .asc URLs for both release and autobuild
keys. rpm --import and apt accept ASCII-armored keys directly, so no
other code changes are needed.
Fixes 404s seen in qa/workunits/cephadm/test_repos.sh and reported by
users running cephadm add-repo on current distros.
Patrick Donnelly [Sun, 12 Jul 2026 18:54:28 +0000 (14:54 -0400)]
releng: refactor audit workflow routing and decouple state management
Previously, workflow routing and PR state management were split between
the GitHub Actions workflow and the underlying PTL script, leading to
stale branch protection states, API pagination bugs, and blocked merges
during manual overrides.
This refactors the workflow into a centralized state machine and decouples
status reporting from the audit tool:
* Decouple State Management: Remove `--audit-label` from `ptl-tool.py` and
move all commit status and label transitions (`releng-audit-pass`,
`releng-audit-fail`) into a dedicated workflow reporter step.
* Non-Blocking Review Comments: Update `ptl-tool.py` in CI mode to post
audit findings as `COMMENT` events rather than `REQUEST_CHANGES`,
preventing stale review states from blocking PRs after an override.
* Add Step Summaries: Implement `write_ci_summary()` in `ptl-tool.py` to
output rich Markdown diagnostic reports directly to `GITHUB_STEP_SUMMARY`.
* Atomic Override Handling: Add `setOverrideStatus()` and `executeOverride()`
to push an immediate `success` commit status when `/audit override` or the
override label is applied, unblocking required branch protection checks.
* Safe SHA & Label Lookup: Replace the unpaginated Bash `curl` request with
a reusable `getPrSha()` helper and evaluate overrides directly within the
JavaScript router.
* Handle Cancellations Safely: Map `cancelled` workflow outcomes to an
`error` commit status rather than defaulting to `failure`.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Yael Azulay [Tue, 30 Jun 2026 18:33:48 +0000 (21:33 +0300)]
qa/workunits: skip unpublished stable repos in test_repos.sh
Probe download.ceph.com before each stable add-repo and skip releases
that are not published for the current distro. This avoids apt/yum
failures on newer OS versions (e.g. Ubuntu 24.04/noble) where older
stable trees like quincy and reef were never published.