mgr/feedback: make tracker URL configurable and stop hitting live tracker in tests
The feedback module hard-coded tracker.ceph.com as the Ceph issue
tracker hostname. This meant the dashboard test
test_issue_tracker_create_with_invalid_key actually performed an
HTTPS POST against the live production tracker on every CI run.
Whenever tracker.ceph.com returned an unexpected response (5xx,
gateway error, transient failure), the test would fail on
completely unrelated pull requests.
Add a runtime module option 'mgr/feedback/tracker_url' that
controls which host the CephTrackerClient talks to. The default
keeps the existing behaviour (tracker.ceph.com). The dashboard
test now sets this option to an unreachable hostname in setUpClass
so create_issue fails fast with a ConnectionError instead of
depending on tracker.ceph.com being reachable.
Combined with the prior commit's error-handling fix, the test now
deterministically verifies that any tracker failure is surfaced as
HTTP 400, without requiring network access.
mgr/dashboard: return 400 for all tracker API errors in feedback
The feedback create endpoint previously classified most tracker API
errors as 500 (Internal Server Error) and relied on fragile string
matching to detect the single "Invalid issue tracker API key" case
for a 400 response.
This caused intermittent test failures (and misleading errors for
users) whenever tracker.ceph.com returned something other than a
plain 401 — e.g., 5xx, forbidden, or a network error. Because the
error message would not match the magic string and the code would
fall through to a hardcoded 500.
Any failure from an upstream API is by definition not an internal
server error. Surface all RuntimeError from the feedback module as
a 400 DashboardException, letting the caller see the underlying
tracker error message.
Annmool [Sun, 15 Mar 2026 13:54:36 +0000 (19:24 +0530)]
mgr/dashboard: use border-subtle utility class in overview and tearsheet
Replace the remaining custom dashboard border classes in the overview alerts card and tearsheet with the shared border-subtle utility classes. Update the alerts-card unit test so it checks the shared utility class name used by the template. Stub Prometheus overview requests in the dashboard a11y Cypress test so the test does not fail on missing metrics in CI.
Bootstrap fails on v20.2.0 upgrade because of
cephadm binary and ceph image version mismatch.
This fixes following problem in bootstrap by using
tentacle cephadm binary:
```
Error: Container release tentacle != cephadm release umbrella; please use matching version of cephadm (pass --allow-mismatched-release to continue anyway)
```
debian: remove stale distutils override from py3dist-overrides
distutils was deprecated in Python 3.10 (PEP 632) and removed in
Python 3.12. The `python3-distutils` package no longer exists in
Debian Trixie (Python 3.13) or Ubuntu 24.04+ (Python 3.12).
The only runtime reference was in `debian/ceph-mgr.requires`, already
cleaned up by 3fb3f892aa3. This override is now dead code, hence no
installed file declares a runtime dependency on `distutils`, so
`dh_python3` never resolves it. Removing it prevents a latent
uninstallable-dependency bug if `distutils` were accidentally
reintroduced in a `.requires` file.
Fixes: https://tracker.ceph.com/issues/75901 Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Max R. Carrara <m.carrara@proxmox.com> Signed-off-by: Kefu Chai <k.chai@proxmox.com>
libcephsqlite: ensure atexit handlers are registered after openssl
When the sqlite3 executable encounters an error with .bail=on, it will
make a call to exit(). The atexit() handlers will execute in LIFO order.
We need to ensure that openssl (before OpenSSL 4.0 [1]) atexit handlers are
registered before libcephsqlite.
[1] http://github.com/openssl/openssl/commit/31659fe32673a6bd66abf3f8a7d803e81c6ffeed (OpenSSL 4.0 no longer arms `OPENSSL_cleanup()` function as an `atexit(3)`)
Fixes: https://tracker.ceph.com/issues/59335 Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Increase op_delay to pggrow to avoid rapid PG splits.
Excessive splitting with a low reactor count can leave many PGs in
snaptrim, causing tests to hit the (short) snap trimming timeout.
Crimson's pggrow keeps the OSDs clean thorugout the entire test,
which is against do_thrash expectations.
Increasing op_delay would reduce do_thrash "actions" back to a normal rate.
Use prompts that cannot be selected in CLI examples. Remove warnings
about selectable prompts.
Use privileged prompt for ceph commands.
Use inline formatting consistently.
Improve capitalization.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com> Reviewed-by: Redouane Kachach <rkachach@redhat.com> Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Run NVMe preformat in the LVM bluestore prepare path and
set skip_mkfs_discard so ceph-osd --mkfs gets --bdev-enable-discard false,
matching the raw OSD behavior.
test/crimson/seastore: add missing crimson::gtest to link libraries
unittest-transaction-manager, unittest-omap-manager,
unittest-btree-lba-manager, and unittest-seastore all include
gtest_seastar.cc but were not explicitly linking against crimson::gtest.
This worked previously because gtest symbols were pulled in transitively,
but with gcc-toolset-13 and LTO the transitive dependency is no longer
satisfied, producing undefined reference errors for testing::Message,
testing::Test, testing::AssertionSuccess, etc.
crimson/osd: make load_obc(obc, md_ref) return void
load_obc() taking an already-resolved loaded_object_md_t::ref is
synchronous, because it just populates obc state, it does yield.
Returning an errorated future was unnecessary and caused a
-Wunused-result warning at its only call site:
ECRecoveryBackend::maybe_load_obc().
In this change, we change it to return void and deduplicate the OBC
population logic: the private async overload (taking future<md_ref>)
now validates ssc and returns object_corrupted on failure.
This silences the warning, and simpler this way. The async error
propagation is preserved.
Kyr Shatskyy [Tue, 27 Jan 2026 18:17:04 +0000 (19:17 +0100)]
qa/standalone/misc: make less noise for asok calculation
The $() notation not only calls the function, it also creates subshell,
which is a separate process. Additionally in debug mode all the content
of the function get_asok_path is printed out in the logs each time
whenever it is called, for example:
Instead of calling get_asok_path each time we need to define osd.0,
etc. asok file path, we just predefine corresponding variables.
It not only avoids extra resource usage, but also removes a lot of
noise from the logs.
Previously s3tests_java.py set JAVA_HOME using the `alternatives`
command. That had issues in that `alternatives` is not present on all
Ubuntu systems, and some installations of Java don't update
alternatives. So instead we look for a "java-8" jvm in /usr/lib/jvm/
and set JAVA_HOME to the first one we find.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
When graph walks is complete, it will actually be possible link to
supported without repeating the links. The matrix implementation doesn't
support this.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
* refs/pull/67961/head:
qa/distros: link random distro to supported
qa/distros: add .qa links
qa: remove special chars from supported-random-distro
qa: remove redundant single-container-host
qa/distros/container-hosts: remove centos8
qa: remove distros/podman
qa: switch from distros/podman to supported-container-hosts