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.
mgr/cephadm: deduplicate HAProxy_Hosts in NFS ganesha.conf
When enable_haproxy_protocol is set, _haproxy_hosts() can collect the
same address more than once. Store collected IPs in a set and return a
list so HAProxy_Hosts contains only unique entries.
Patrick Donnelly [Sat, 11 Jul 2026 19:09:47 +0000 (15:09 -0400)]
script/ptl-tool: map supported PR labels to Redmine QA tags
Introduce a supported whitelist of component tags (e.g., rgw, cephfs,
rbd, cephadm) and automatically extract matching labels from the queued
GitHub pull requests during integration branch builds.
When building or updating a Redmine QA tracking ticket:
* Append matching component tags directly to each PR line in the ticket
description (e.g., `(tags: rgw, cephfs)`).
* Populate the `tag_list` attribute on the Redmine issue to seamlessly
integrate with the RedmineUP Tags plugin.
* When updating an existing QA ticket, preserve any pre-existing tags
already attached to the issue and merge them with the active PR tags.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 19:02:23 +0000 (15:02 -0400)]
script/ptl-tool: add --qe-label option for automated QA workflows
Introduce the `--qe-label <pr-label>` option to streamline daily integration
testing and Redmine QA tracking for backports.
Using `--qe-label` automatically implies `--integration` and `--pr-label`,
and manages Redmine QA tracking tickets via custom field 45 (Ceph PR Label):
* Searches for open QA tickets matching the specified PR label and target
release branch.
* If exactly one open ticket is found, prompts the user to either update
the existing ticket or create a new one.
* If no open ticket is found, automatically defaults to creating a new
QA ticket with the label stored in its metadata.
* Adds pre-flight validation to ensure all labeled PRs target the exact
same base branch, preventing ambiguous or mixed-release merges.
* Halts execution if multiple ambiguous open QA tickets exist for the
same label and release branch.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 18:15:02 +0000 (14:15 -0400)]
script/ptl-tool: detect scrambled commits and clean up visualizer
Refactor the Commit Parity Visualizer generation to use a deterministic
ordered grouping loop instead of a state machine. Missing commits are now
reliably printed within their respective original PR blocks, and any extra
backport commits are isolated at the bottom of the table.
In addition, add automated checks to detect "scrambled" commits during
backports:
* Verify that commits from multiple upstream PRs are not interleaved or
scrambled together.
* Verify that commits within an individual upstream PR are applied in
their exact original chronological sequence.
If scrambled or out-of-order commits are detected, log a failure in CI mode
or prompt the user for interactive resolution to ensure clean backport
history and reduce regression risks.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sun, 12 Jul 2026 16:55:19 +0000 (12:55 -0400)]
releng-audit: clear state labels and set pending status on comment triggers
When /audit retest or /audit test-branch is invoked via an issue_comment event, GitHub Actions does not natively bind the execution to the PR's HEAD commit SHA. As a result, the check widget on the PR conversation tab remains in its previous state (often showing as failed), and any lingering releng-audit-fail or releng-audit-pass labels remain attached.
This introduces a triggerAuditRun helper function to the workflow router that:
- Removes any existing releng-audit-fail or releng-audit-pass labels from the pull request to reset the label state machine and prevent subsequent synchronize events from halting prematurely.
- Explicitly creates a pending commit status on the PR's HEAD SHA via the GitHub REST API, ensuring visual consistency and feedback inside the PR UI while manual or test-branch audits execute in the background.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 19:19:16 +0000 (15:19 -0400)]
.github/workflows/releng-audit: support testing via alternate branch
Allow authorized maintainers and release managers to test audit workflow
changes on a pull request using an alternate repository branch.
When a user comments `/audit test-branch [branch-name]` on a PR:
* Verify user authorization and confirm the target branch exists via the
GitHub API (defaulting to `testing/releng-audit` if unspecified).
* If valid, activate audit execution and set the `checkout_ref` output
to dynamically override the repository checkout target.
* If the branch does not exist or the user lacks permissions, fail the
job cleanly and leave an explanatory comment.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
David Galloway [Fri, 10 Jul 2026 20:12:01 +0000 (16:12 -0400)]
script/buildcontainer-setup: fix package install on debian trixie
Debian removed software-properties-common from the archive in trixie,
so the flat apt-get install list fails there. The package was only
needed to provide add-apt-repository for llvm.sh, which installs
clang-19 from apt.llvm.org. Trixie ships clang-19 natively, so install
it from the distro instead; run-make.sh's prepare() then finds clang-19
and skips llvm.sh entirely. Ubuntu and older Debian releases still have
software-properties-common and keep the previous behavior.
Fixes: https://tracker.ceph.com/issues/78111 Signed-off-by: David Galloway <david.galloway@ibm.com>
Nizamudeen A [Thu, 9 Jul 2026 07:52:58 +0000 (13:22 +0530)]
mgr/dashboard: fix html lint errors according to new rules
mostly accessibility issues like
- A label component must be associated with a form element
Fixed by adding `for` to labels and sometimes replacing label with
legend
- Elements with interaction handlers must be focusable
- click must be accompanied by either keyup, keydown or keypress event for accessibility
- <button> should have content
Fixes: https://tracker.ceph.com/issues/77112 Signed-off-by: Nizamudeen A <nia@redhat.com>
Translate sqlite3.DatabaseError into a generic StoreUnavailable in
sqlite_store.py and handle it in cli.py and module.py instead of
letting it surface as an unhandled exception
mgr/cephadm: suppress CEPHADM_FAILED_DAEMON for services being removed
When a service is deleted, a daemon belonging to it may transiently
enter a failed state before orphan cleanup removes it. This happens
when there is a race between dependency-changed REDEPLOY and a
service removal going on paralelly.
Skip daemons in update_failed_daemon_health_check whose service is
already in spec_deleted.
Nizamudeen A [Fri, 10 Jul 2026 05:42:58 +0000 (11:12 +0530)]
.github: fix check-license permission issue
RCA done by copilot inside the github actions
Root cause: the workflow is passing the default token to a third‑party action that calls PR/diff APIs, and in this run that token doesn’t have the required permission scope for that request.
From the failing job log:
There seems to be an error in an API request
This is usually due to using a GitHub token without the adequate scope
From the job definition (.github/workflows/check-license.yml):
It uses JJ/github-pr-contains-action
Token passed is ${{ github.token }}
Fix
Grant explicit read permissions needed for pull request metadata/content in this workflow (or job), so the token has consistent scope when the action fetches diff data.
Why this solves it
The action needs to read PR diff data. Explicitly setting pull-requests: read (and contents: read) prevents under-scoped default token behavior that triggers the API failure.
John Mulligan [Thu, 9 Jul 2026 20:12:11 +0000 (16:12 -0400)]
pybind/mgr: disable type checking in diskprediction_local
Disable type checking in the __preprocess function of
diskprediction_local. This function is already collecting a lot of
`type: ignore` comments and adding more is getting difficult due to
the structure of this function. This time we were hitting errors
like:
diskprediction_local/predictor.py:160: error: Value of type "NDArray?[Any]" is not indexable [index]
diskprediction_local/predictor.py:161: error: "NDArray?[Any]" has no attribute "shape" [attr-defined]
on python 3.12.
Fixes: https://tracker.ceph.com/issues/78117 Signed-off-by: John Mulligan <jmulligan@redhat.com>
mgr/cephadm/smb: Add feature-based REDEPLOY logic for SMB services
Implement intelligent action selection for SMB daemon updates by tracking
feature changes as dependencies. When SMB service features change (e.g.,
adding cephfs-proxy, remote-control, keybridge), the system now triggers
a REDEPLOY instead of RECONFIG, as these changes require container
structure modifications.
John Mulligan [Thu, 9 Jul 2026 14:28:13 +0000 (10:28 -0400)]
qa/workunits/smb: work around test failures by pinning smbprotocol version
Work around new tests failures (in the TestHostsAccessToggle1 tests)
where the error/exception handling has apparently changed by just
pinning the version (by excluding the new v1.17.0 and newer versions).
Signed-off-by: John Mulligan <jmulligan@redhat.com>
qa/crimson: ignore PG_NOT_DEEP_SCRUBBED in all crimson tests
As we do not yet scrub scheduling in Crimson, the
OSDs do not perform deep scrubs. last_deep_scrub_stamp thus
stays at epoch 0 for all PGs. The monitor flags these as overdue
immediately, causing spurious test failures — particularly in tests
that restart OSDs (e.g. crimson_fio_restart), where PGs reaching
active+clean state trigger the health check.