Commit Graph

13009 Commits

Author SHA1 Message Date
Yuri Weinstein
c9ac93fdbb qa/tests: fix POOL_FULL ignorelist pattern in upgrade tests
\(POOL_FULL\) only matches the "Health check failed/update" cluster-log
format (code wrapped in parens). It misses the "Health check cleared"
format, where the code is not parenthesized (see src/mon/Monitor.cc),
so a pool clearing its full state mid-upgrade-test was not ignorelisted.
Drop the escaped parens so the pattern matches both forms, consistent
with other bare entries already in this file (OSD_ROOT_DOWN,
MDS_INSUFFICIENT_STANDBY).

Fixes: https://tracker.ceph.com/issues/78149
Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
2026-07-10 08:53:36 -07:00
Kefu Chai
1d0df87756
Merge pull request #69776 from tchaikov/wip-mgr-selftest-influx-ignorelist
qa/suites/rados/mgr: ignorelist MGR_INFLUX_DB_LIST_FAILED

Reviewed-by: Sridhar Seshasayee <sridhar.seshasayee@ibm.com>
2026-07-10 23:52:13 +08:00
Kefu Chai
4af78378a9 qa/tasks/mgr: bounce the mgrs once per test class
The dashboard backend API suite occasionally fails in CI on the job's
7200 second timeout alone, with every test passing. Suite runtime
varies with builder load: identical runs of the same 311 tests took
anywhere from about 5400 to over 7000 seconds, and teardown needs
roughly another 180 seconds on top. On the runs that landed at the
high end, only 60 to 80 seconds of margin were left before the
timeout fired. Cutting setup overhead gives the suite that margin
back.

DashboardTestCase.setUpClass() restarted every mgr twice: once in
MgrTestCase.setup_mgrs(), and again right after in _assign_ports(),
whose only job is to set the per-mgr dashboard port, which has to
happen while the mgrs are down.

Let subclasses declare their module ports in a MODULE_PORTS class
attribute instead. setup_mgrs() assigns them while the daemons are
already stopped, so the single restart it performs picks them up and
the second stop/fail/restart cycle disappears.

The assignment loop moves to _assign_module_ports(). _assign_ports()
keeps its old stop/assign/restart contract for callers that reassign
ports outside class setup (test_prometheus, test_dashboard,
test_module_selftest) and delegates to the shared helper.

With 66 dashboard test classes per API suite run this removes one
full mgr bounce per class, roughly 10 to 15 minutes of wall clock in
the CI runs examined.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2026-07-10 13:54:32 +08:00
Ronen Friedman
1f342d4f27
Merge pull request #69938 from ronen-fr/wip-rf-nodp-crimson
qa/crimson: ignore PG_NOT_DEEP_SCRUBBED in all crimson tests

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2026-07-10 07:46:14 +03:00
John Mulligan
25f76754e0
Merge pull request #70083 from phlogistonjohn/jjm-smb-teuth-workunit-pin
qa/workunits/smb: work around test failures by pinning smbprotocol version

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
2026-07-09 19:46:25 -04:00
Casey Bodley
ba6eb32e88
Merge pull request #69841 from cbodley/wip-qa-rgw-crypt-kmip-re-renable
Revert "Reapply "qa/rgw/crypt: disable failing kmip testing""

Reviewed-by: Adam Emerson <aemerson@redhat.com>
2026-07-09 13:21:04 -04:00
Shweta Bhosale
19dea175a3 qa: fixed the NFS protocol version in test_nfs.py
Fixes: https://tracker.ceph.com/issues/78099
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-07-09 20:02:26 +05:30
John Mulligan
ce5ceabfae 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>
2026-07-09 10:28:13 -04:00
Venky Shankar
59ea63c7e6 qa: use dmclock with fs:workload
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2026-07-09 19:41:34 +05:30
Redouane Kachach
d899c9fd7d
Merge pull request #69998 from rkachach/fix_issue_77991
qa/cephadm: fix hardcoded 'sshd' unit name in setup_ca_signed_keys

Reviewed-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-07-09 15:44:02 +02:00
Nizamudeen A
0ad33c0965 mgr/dashboard: fix unncessary traceback when bucket not exist
UI has an async validator which calls the GET bucket API to make sure
the bucket name doesn't exist, but the proxy
was not properly handling the http_status_codes which results in raising
a massive traceback in logs whenever you type things in the bucket name
field. So handling that gracefully by capturing the proper status codes
for both RequestException and DashboardException

BEFORE
```
File "/usr/share/ceph/mgr/dashboard/services/exception.py", line 47, in dashboard_exception_handler
return handler(*args, **kwargs)
File "/lib/python3.9/site-packages/cherrypy/_cpdispatch.py", line 54, in _call_
return self.callable(*self.args, **self.kwargs)
File "/usr/share/ceph/mgr/dashboard/controllers/_base_controller.py", line 263, in inner
ret = func(*args, **kwargs)
File "/usr/share/ceph/mgr/dashboard/controllers/_rest_controller.py", line 193, in wrapper
return func(*vpath, **params)
File "/usr/share/ceph/mgr/dashboard/controllers/rgw.py", line 357, in get
result = self.proxy(daemon_name, 'GET', 'bucket', {'bucket': bucket})
File "/usr/share/ceph/mgr/dashboard/controllers/rgw.py", line 213, in proxy
raise DashboardException(e, http_status_code=http_status_code, component='rgw')
dashboard.exceptions.DashboardException: RGW REST API failed request with status code 404
(b'{"Code":"NoSuchBucket","Message":"","RequestId":"tx00000f14e08c1af0d5615-006'
b'71f54a7-3bc6-default","HostId":"3bc6-default-default"}')
2024-10-28T09:08:55.990+0000 7f89e045b640  0 [dashboard INFO request] [::ffff:10.74.18.122:51853] [GET] [500] [0.007s] [admin] [200.0B] /api/rgw/bucket/bucket-das
```

AFTER
```
Jul 08 09:28:28 ceph-node-00 ceph-mgr[2243]: [dashboard ERROR dashboard.rest_client] RGW REST API failed GET req status: 404
Jul 08 09:28:28 ceph-node-00 ceph-mgr[2243]: [dashboard INFO dashboard.services.exception] Dashboard Exception: RGW REST API failed request with status code 404
                                             (b'{"Code":"NoSuchBucket","Message":"","RequestId":"tx00000c029a81e5d154844-006'
                                              b'a4e183c-14251-default","HostId":"14251-default-default"}')
Jul 08 09:28:28 ceph-node-00 ceph-mgr[2243]: [dashboard INFO dashboard.tools] [::ffff:192.168.100.1:60408] [GET] [404] [0.078s] [admin] [200.0B] /api/rgw/bucket/testsa
```

Fixes: https://tracker.ceph.com/issues/78038
Signed-off-by: Nizamudeen A <nia@redhat.com>
2026-07-09 16:15:19 +05:30
Dhairya Parmar
fc3ca7725b qa: test cephfs-journal-recovery event recover_dentries summary
with capping the maximum RSS to 500 MiB

Partially-Fixes: https://tracker.ceph.com/issues/76422
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
2026-07-09 14:35:20 +05:30
Ronen Friedman
d98e84a618 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.

Fixes: https://tracker.ceph.com/issues/77929
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2026-07-09 08:26:47 +00:00
Laura Flores
387871c86d
Merge pull request #68325 from ljflores/wip-tracker-75414
qa/suites/upgrade: add POOL_FULL variations to ignorelist

Reviewed-by: Radosław Zarzyński <Radoslaw.Adam.Zarzynski@ibm.com>
2026-07-07 14:57:02 -05:00
Redouane Kachach
7b2217caf3
qa/cephadm: fix hardcoded 'sshd' unit name in setup_ca_signed_keys
setup_ca_signed_keys() hardcoded `systemctl restart sshd`, which fails
on Debian/Ubuntu where the SSH server unit is named `ssh.service`
rather than `sshd.service`. Try `ssh` first, fall back to `sshd` if
that fails, grouped so the fallback only fires on restart failure and
doesn't mask a failed config write.

Fixes: https://tracker.ceph.com/issues/77991
Signed-off-by: Redouane Kachach <rkachach@ibm.com>
2026-07-07 15:47:11 +02:00
Ilya Dryomov
75c4e2897f qa/suites/rbd/valgrind: pin to centos_9.stream instead of rpm_latest
This used to be the case before commit d4b977afdc ("qa/distros:
rename centos_latest.yaml to rpm_latest.yaml") and subsequent changes
to enable Rocky 10.  When paired with valgrind, python_api_tests* jobs
fail persistently on Ubuntu and Rocky, see [1].  Switch back until that
is resolved (or for as long as centos_9.stream remains in the mix).

[1] https://tracker.ceph.com/issues/74864

Fixes: https://tracker.ceph.com/issues/77982
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2026-07-07 13:40:57 +02:00
Venky Shankar
d73bf27fa9
Merge pull request #68635 from chrisphoffman/wip-74110
qa: Use mount class in test_fscrypt to read/write and to compare trees

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-07-07 08:41:40 +05:30
Sridhar Seshasayee
5937363e43
Merge pull request #69578 from sseshasa/wip-osd-perf-counter-pg-rebuild-stats
osd/PeeringState: add perf counters for PG rebuild times

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
2026-07-06 18:33:52 +05:30
Kefu Chai
56ae6e2a0b
Merge pull request #69795 from tchaikov/wip-qa-cephfs-escape-warnings
qa/cephfs: fix invalid escape sequence SyntaxWarnings

Reviewed-by: Edwin Rodriguez <edwin.rodriguez1@ibm.com>
2026-07-03 09:17:51 +08:00
Kotresh HR
76df7a90b2
Merge pull request #69081 from karthik-us1/mirroring-checkpoints
tool/cephfs_mirror: Adding checkpoints for mirroring

Reviewed-by: Kotresh HR <khiremat@redhat.com>
2026-07-02 18:31:37 +05:30
Karthik U S
fe7fa7b076 qa/test_mirroring: Add tests for mirroring checkpoints
Adding integration tests for validating the cephfs mirroring
checkpoints feature

Fixes: https://tracker.ceph.com/issues/73454
Signed-off-by: Karthik U S <karthik.u.s1@ibm.com>
2026-07-02 14:49:04 +05:30
Ilya Dryomov
e246fad552 qa/suites/rbd: add mon_host + key[-ref] coverage to migration-external
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2026-07-01 21:53:53 +02:00
Ilya Dryomov
047bbbf863 qa/suites/rbd: use client.0 entity in migration-external tests
Currently client.admin is passed for client_name and that doesn't
exercise client_name handling much as client.admin is the default.

When deploying multiple clusters the ceph task distributes keyrings
with only the key for the initial monitor and client.admin key.  Other
keys (e.g. client.0) are present only on their respective clusters, so
client.0's key for cluster2 needs to be obtained on cluster1 explicitly
with "ceph auth get".

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2026-07-01 21:53:53 +02:00
Oguzhan Ozmen
1c1eacc327
Merge pull request #69591 from BBoozmen/wip-oozmen-77509
rgw: add RGWObjCategory::MultiPart to separate multipart parts from completed objects in bucket stats
2026-07-01 14:24:20 -04:00
Christopher Hoffman
aa70e12532 qa: Use mount class in test_fscrypt to read/write and to compare trees
In TestFSCryptVolumes, make sure to use mount class to
compare directory trees and to read/write files.

Fixes: https://tracker.ceph.com/issues/74110
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
2026-07-01 16:42:23 +00:00
Casey Bodley
c63915350f Revert "Reapply "qa/rgw/crypt: disable failing kmip testing""
This reverts commit d27261d0c2.

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

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-07-01 09:22:21 -04:00
Casey Bodley
57342f5373 qa: pykmip task defaults to ceph fork
point the pykmip task to the ceph fork of the PyKMIP repo, which carries
fixes for newer python

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-07-01 09:22:21 -04:00
Venky Shankar
fc9f8642b2 Merge PR #66558 into main
* refs/pull/66558/head:
	qa/cephfs: minor fix in comment
	qa/cephfs: give more time to tests in test_clone_stats.py
	qa/cephfs: increase number of files to cloned in test_clone_stats.py
	volumes/stats_util: improve log messages

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Jos Collin <jcollin@redhat.com>
2026-07-01 11:14:38 +05:30
Matthew Heler
1720adf625 qa/rgw/lifecycle: split transition recompress into separate jobs
Without a facet marker, teuthology concatenated all three yamls into
one job, running plain, CBC, and GCM workunits back-to-back under
whichever rgw override won.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
2026-06-30 10:22:13 -05:00
Matthew N. Heler
75f81837ce rgw: extract shared recompress pipeline for CopyObject and LC transitions
Extract the decrypt/decompress/recompress/re-encrypt filter pipeline
into a shared RGWRecompressDPF base class. RGWTransitionDPF is added
for lifecycle transitions and RGWCopyObjDPF is rewritten on top of
the same base, both as thin subclasses providing key retrieval and
compression config.

Add rgw_prepare_decrypt_object() for decrypting from stored attrs
without an HTTP request context (handles SSE-KMS/-GCM, SSE-S3/-GCM,
RGW-AUTO/-GCM), and rgw_prepare_reencrypt_object() which regenerates
the GCM salt before re-deriving the per-object key — avoids AEAD
nonce reuse when LC re-encrypts modified plaintext.

Includes a QA workunit that drives transitions through three
storage classes with different compression configs and verifies
data integrity, including with SSE-KMS encrypted objects.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
2026-06-30 10:21:55 -05:00
Venky Shankar
1d7f80b43b
Merge pull request #69031 from neesingh-rh/wip-71795
qa: fixing failures in TestShellOpts

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-06-30 19:10:09 +05:30
Igor Fedotov
641038fb0e test/osd-bluefs-volume-ops: minor cleanup
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
2026-06-30 15:46:56 +03:00
Igor Fedotov
f88927d283 qa/osd-bluefs-volume-ops: add more bluestore expansion test cases.
Reproduces: https://tracker.ceph.com/issues/75852
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
2026-06-30 15:46:54 +03:00
Casey Bodley
283108e66b
Merge pull request #69371 from cbodley/wip-76961
qa/dnsmasq: use managed dnsmasq instead of editing resolv.conf

Reviewed-by: Oguzhan Ozmen <oozmen@bloomberg.net>
2026-06-30 08:30:26 -04:00
Igor Fedotov
a65fd3baf3
Merge pull request #66344 from JoshuaGabriel/68797-bdev-expand-admin
os/bluestore: asok command to expand block device and Bluestore while OSD is running

Revewed-by: Igor Fedotov <igor.fedotov@croit.io>
2026-06-30 15:13:45 +03:00
Kobi Ginon
e6679c37ac qa/mgr: fix influx module_selftest health warning noise
Skip influx selftests when the Python influxdb client is not installed.
Remove the ineffective testhost workaround and ignore the expected
MGR_INFLUX_NO_SERVER warning when the module runs without a server.

Fixes: https://tracker.ceph.com/issues/77250
Signed-off-by: Kobi Ginon <kginon@redhat.com>
2026-06-30 14:58:26 +03:00
Redouane Kachach
b9fdd67b58
Merge pull request #66663 from Shubhaj1810/fix-issue-2384421
mgr/nfs: include placement details and active/passive roles in cluster info

Reviewed-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-06-30 13:42:16 +02:00
NitzanMordhai
dd5cbcdf5c
Merge pull request #69675 from NitzanMordhai/wip-nitzan-config-trim-key-trail-lead-spaces
mon/config: trim whitespace in config target
2026-06-29 11:02:24 +03:00
Kefu Chai
1ccb756182 qa/cephfs: fix invalid escape sequence SyntaxWarnings
python 3.12 warns on unrecognized escape sequences in string literals.
fuse_mount's admin-socket pyscript and mount's nft payload carry regex
and shell escapes (\., \d, \;) that are meant literally, so make those
strings raw. filesystem's get_mds_addr docstring had a stray \/ in the
example address, which is just a slash, so drop the backslash.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2026-06-29 09:36:12 +08:00
Kefu Chai
e59ab34666 qa/suites/rados/mgr: ignorelist MGR_INFLUX_DB_LIST_FAILED in module_selftest
module_selftest fails on a cluster log warning that is not ignorelisted:

  cluster [WRN] Health check failed: Failed to list/create InfluxDB database (MGR_INFLUX_DB_LIST_FAILED)

module_selftest is the only job that enables the influx module, and no suite
provisions an InfluxDB server, so once enabled the module cannot reach a backend
and raises a health warning: MGR_INFLUX_NO_SERVER when no hostname is set,
MGR_INFLUX_DB_LIST_FAILED from serve() once one is.  test_influx sets a hostname,
so it hits the latter.

This surfaced only after the test image started shipping the influxdb python
module.  Until then can_run() returned false, the module never enabled, and the
sole log line was "influxdb python module not found", which is already
ignorelisted.  self_test() cannot run without enabling the module, so ignorelist
the warning it raises.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2026-06-27 07:26:02 +08:00
Ilya Dryomov
35eb60117b
Merge pull request #68500 from abitdrag/wip-non-prim-demote-img-snap-removal
rbd-mirror: Remove old non-primary demoted image snapshots on the local cluster

Reviewed-by: VinayBhaskar-V <vvarada@redhat.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2026-06-25 12:33:51 +02:00
Nitzan Mordechai
cab98604fa mon/config: trim whitespace in config target
When set\get\rm config values with leading or trailing spaces,
those spaces need to be removed before we are trying to get\set\rm
those keys.
add trim code before each approch and also for exist keys in config.

Fixes: https://tracker.ceph.com/issues/77598
Signed-off-by: Nitzan Mordechai <nmordech@ibm.com>
2026-06-25 06:52:47 +00:00
Miki Patel
5a77c4fd35 rbd-mirror: Remove old non-primary demoted image snapshots on the local cluster
When an image is demoted on primary cluster and later promoted again,
a non-primary demoted image snapshot is created on the peer (secondary)
cluster. Each such promote/demote cycle on same cluster results in an
additional non-primary demoted snapshot being created on peer.
As a result, repeated promote/demote cycles on the same cluster can
lead to accumulation of stale non-primary demoted snapshots on the
secondary cluster. These snapshots are not removed immediately because
cleanup is only triggered when peer (secondary) is promoted and then
demoted.

The proposed changes ensures that such snapshots are proactively identified
and removed, preventing unbounded buildup. Also added test coverage to
verify cleanup behavior.

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

Signed-off-by: Miki Patel <miki.patel132@gmail.com>
2026-06-24 23:11:46 +05:30
Oguzhan Ozmen
29099f910c qa/rgw: add integration test for multipart part category in bucket stats
Test that multipart upload part heads are tracked under the
rgw.multipart category in radosgw-admin bucket stats, separate from
completed objects (rgw.main).

- Incomplete upload: rgw.main=0, rgw.multipart=X, rgw.multimeta=1
- CompleteMultipart: parts cleaned up, assembled object in rgw.main
- AbortMultipart: parts cleaned up, rgw.multipart returns to 0
- ListObjects returns 0 during incomplete upload

Also add quota enforcement testcase for multipart part category

- Verify that multipart upload parts tracked under RGWObjCategory::MultiPart
  still count against both bucket and user quotas.

Tests: https://tracker.ceph.com/issues/77509
Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
2026-06-24 16:51:57 +00:00
Afreen Misbah
98f04401bb
Merge pull request #69390 from rhcs-dashboard/fix-feedback-module
mgr/dashoard : Fix feedback module enablement


Reviewed-by: Naman Munet <nmunet@redhat.com>
2026-06-24 21:04:45 +05:30
Casey Bodley
69b89f2274
Merge pull request #65724 from adamemerson/wip-include-s3tests
Include s3-tests in ceph repo

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2026-06-24 10:12:54 -04:00
Abhishek Desai
bdbfa8a15a mgr/dashboard : Fix feedback module enablement
fixes : https://tracker.ceph.com/issues/75734
Signed-off-by: Abhishek Desai <abhishek.desai1@ibm.com>
2026-06-24 13:08:01 +05:30
Kotresh HR
a38b620ccd
Merge pull request #68827 from kotreshhr/mirror-metrics-new-mgr-interface
tools/cephfs_mirror: Mirror metrics via  new mgr interface

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-06-24 08:18:37 +05:30
Kefu Chai
2e2f5f7670
Merge pull request #69664 from tchaikov/wip-asan-options
cmake,ceph,qa: update and populate ASan options to ceph cli

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
2026-06-24 08:53:07 +08:00
Laura Flores
cf695e6c81 qa/suites/upgrade: add POOL_FULL variations to ignorelist
Fixes: https://tracker.ceph.com/issues/75414
Signed-off-by: Laura Flores <lflores@ibm.com>
2026-06-23 17:07:45 -05:00
Laura Flores
6158e8efcb
Merge pull request #69416 from NitzanMordhai/wip-nitzan-test-osd-recovery-prio-race
osd-recovery-prio: race condition fix in TEST_recovery_pool_priority

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
2026-06-23 16:27:28 -05:00
Laura Flores
5475faaddf qa/tasks: change collectl source to download.ceph.com
Getting it from our own service avoids exposing us to
supply chain attacks in our QA infrastructure.

Fixes: https://tracker.ceph.com/issues/76927
Signed-off-by: Laura Flores <lflores@ibm.com>
2026-06-23 15:13:33 -05:00
Kefu Chai
320a3a0529 qa/lsan.supp: suppress CPython 3.12/3.13 interpreter leaks
The python binaries on some CI images and dev boxes ship stripped, so the
allocator frames in an interpreter-shutdown leak come through unsymbolised
(/usr/bin/python3.13+0x...) and the function-name matches above cannot apply.
leak:python3.10 already handled this for 3.10, and a stale comment claimed 3.12
does not leak.

Add leak:python3.12 and leak:python3.13, mirroring the 3.10 entry, so the
interpreter globals are suppressed whatever CPython the build uses.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2026-06-23 23:02:05 +08:00
mheler
c6bee66adc
Merge pull request #69175 from cbodley/wip-qa-rgw-multisite-gcm 2026-06-23 08:17:59 -05:00
Venky Shankar
9be97d7cde
Merge pull request #68482 from chrisphoffman/wip-73347
qa: Add direct_io test for fscrypt

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-06-23 18:34:39 +05:30
Kotresh HR
b80828fbad qa: Add mgr snapshot mirror status tests
Add teuthology coverage for `ceph fs snapshot mirror status`:
parity with asok peer_status, default idle metrics, stale omap
handling, error paths, filter scopes, daemon restart, and cache TTL.

Reuse existing peer_dir_status and metrics assertion helpers.
Adjust stale test wait for InstanceWatcher timeout and set a
short cache TTL in the cache test. Pass peer_uuid via --peer_uuid=
in the test helper for peer-only scope queries.

Fixes: https://tracker.ceph.com/issues/76686
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2026-06-23 18:12:26 +05:30
Adam C. Emerson
5bc34f8ed8
qa/rgw: Remove 'force-branch' from s3tests configs
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2026-06-22 19:33:47 -04:00
Adam C. Emerson
d0c88cb53c
qa/rgw: Run s3-tests from within the Ceph repo
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2026-06-22 19:33:47 -04:00
Casey Bodley
591ce1234b qa/dnsmasq: remove unused backup/replace_resolv()
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-06-22 10:34:50 -04:00
Casey Bodley
617f553913 qa/dnsmasq: use managed dnsmasq instead of editing resolv.conf
this task was manually editing /etc/resolv.conf to configure dns names.
on ubuntu 24, these changes were getting clobbered by NetworkManager or
systemd service restarts

instead, manage dnsmasq depending on host distro. rpm-based distros use
NetworkManager's dnsmasq plugin, while deb-based distros use
systemd-resolved to point at the local dnsmasq

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

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-06-22 10:34:50 -04:00
Sridhar Seshasayee
4d29f4e402 osd/PeeringState: add perf counters for PG rebuild times
Track per-OSD PG rebuild duration in prepare_stats_for_publish()
(primary OSD only). Three new counters are added to the
recoverystate_perf collection:

 - pg_rebuild_duration: LONGRUNAVG time counter (sum+count pair);
   This counter internally maintains 'avgcount' that tracks the
   cumulative number of rebuild events.
 - pg_rebuild_max_secs: maximum rebuild duration observed in seconds
 - pg_rebuild_min_secs: minimum rebuild duration observed in seconds

The logic uses a per-PG in-memory latch (rebuild_start_time) to
capture the redundancy failure entry point. When a PG is first observed
to be in a vulnerable state (PG_STATE_DEGRADED,
PG_STATE_UNDERSIZED, or num_objects_misplaced/degraded > 0), it
latches info.stats.last_change as the start time, provided
last_change > last_clean, which ensures only genuine new failures
after the prior clean interval are tracked.

On recovery, the rebuild duration is computed as (now - rebuild_start_time)
and is only recorded if delta num_objects_recovered > 0 or the PG had
confirmed redundancy loss at latch time, filtering out spurious state
transitions. The latch is cleared after each recorded event.

The latch is also cleared in clear_primary_state() so that an interval
change or role transition (primary -> replica) does not carry a stale
start time or baseline recovered count into a future interval.

The new last_degraded is intentionally not used here to retain compatibility
with older Ceph branches where the field doesn't exist and requires encoding
changes. A future simplification can replace the latch with a direct
(last_clean - last_degraded) calculation once last_degraded is consistently
available.

This interim solution is a close approximation of the PG rebuild time.

These counters are scraped per-OSD by ceph-exporter and exposed to
Prometheus, enabling durability score calculations over user-defined
time windows.

Other Changes:
1. Add unit tests to TestPeeringState.cc that exercise the latch logic.
2. Add a standalone integration test to verify that the rebuild perf counters
   are incremented on the primary OSD after a recovery event.

Fixes: https://tracker.ceph.com/issues/77493
Signed-off-by: Sridhar Seshasayee <sridhar.seshasayee@ibm.com>
2026-06-22 19:19:34 +05:30
Sun Yuechi
51a82211ed qa/lsan.supp: suppress seastore reactor-teardown leaks
unittest-seastore runs the seastar reactor on a separate thread
(SeastarRunner) and stops it at exit without draining its pending
tasks, so a few cached extents those tasks still held are leaked at
shutdown. Suppress them by the three seastore subsystems they come from.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2026-06-22 14:52:57 +08:00
Sun Yuechi
e35cdb7123 qa/lsan.supp: suppress still-reachable third-party leaks
Several unittests fail LeakSanitizer on still-reachable allocations that
belong to third-party libraries, not to Ceph. These are boost.thread's
main-thread TLS, OpenSSL's one-time init (the ForkDeathTest children
_exit() before it is freed), and the cipher, DRBG and error-stack state
that OpenSSL and libcryptsetup keep behind the librbd encryption and
migration unittests. None get freed without OPENSSL_cleanup(), so suppress
them by their allocation entry points.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2026-06-22 14:52:22 +08:00
Kefu Chai
767e1b6514
Merge pull request #69316 from sunyuechi/wip-tests-venv-system-site-packages
test: optionally run test venvs with system site-packages

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2026-06-21 07:14:12 +08:00
Sun Yuechi
ba5da131ec mypy: skip follow_imports for prettytable
With test venvs on system site-packages, mypy picks up the system
prettytable (3.4.0+, typed). It flags mgr's add_row(tuple) against the
list[Any] signature (src/mypy.ini) and qa's float_format = str against
the dict[str, str] property (qa/mypy.ini). Skip follow_imports in both.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2026-06-20 14:49:16 +08:00
Ilya Dryomov
5b397048cc
Merge pull request #68161 from abitdrag/wip-miki-image-prim-snap-removal
rbd-mirror: prune obsolete primary mirror snapshots after relocation

Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: VinayBhaskar-V <vvarada@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2026-06-19 11:38:14 +02:00
Ilya Dryomov
dc130970dd
Merge pull request #69414 from Adarsha1999/teuthology-smoke-log-ignorelist
qa/smoke/basic: add log-ignorelist entries for expected smoke test warnings

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-06-19 00:30:09 +02:00
Adarsha Dinda
517c72f659 qa/smoke/basic: add log-ignorelist entries for expected smoke test warnings
Ignore FS_DEGRADED in libcephfs_interface_tests and MON_DOWN in
rbd_python_api_tests to avoid false failures from transient cluster health
messages.

Signed-off-by: Adarsha Dinda <adarshadinda@Adarshas-MacBook-Pro.local>
2026-06-18 22:29:30 +05:30
Casey Bodley
c99131fa29
Merge pull request #69425 from cbodley/wip-76995
Reapply "qa/rgw/crypt: disable failing kmip testing"

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
2026-06-18 10:10:59 -04:00
Kotresh HR
2fca3c3538
Merge pull request #69074 from kotreshhr/mirror-metrics-counter-dump
tools/cephfs_mirror: Expose Mirror metrics via asok counter dump

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-06-18 09:40:55 +05:30
Miki Patel
a10f58df8c rbd-mirror: prune obsolete primary mirror snapshots after relocation
Previously, obsolete primary and demoted primary snapshots on the
secondary cluster were not cleaned up immediately after relocation.
Instead, old primary snapshots remained until a subsequent promote
operation triggered their cleanup, while old demoted primary snapshots
persisted until a later demote operation removed them.

Adding changes for proactive cleanup of obsolete primary and demoted
primary snapshots that are no longer required after relocation.

Also adding test coverage to validate the cleanup behavior.

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

Signed-off-by: Miki Patel <miki.patel132@gmail.com>
2026-06-17 16:17:27 +05:30
Nitzan Mordechai
90b925d824 osd-recovery-prio: race condition fix in TEST_recovery_pool_priority
Use norecover to pause recovery ops while inspecting reservation
state. Without it, recovery can complete before the admin-socket
dump is captured, causing intermittent test failures

Fixes: https://tracker.ceph.com/issues/77113
Signed-off-by: Nitzan Mordechai <nmordech@ibm.com>
2026-06-17 10:34:58 +00:00
Kotresh HR
3fc6457a8f qa: Add tests for cephfs_mirror_directory perf counters
Verify counter dump registration, current-sync gauges while syncing
(full/delta), last-sync and summary counters after idle sync, and
extend mirror stats and remote-snap failure tests for per-directory
snaps_* and dir_state.

Fixes: https://tracker.ceph.com/issues/73457
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2026-06-16 23:11:16 +05:30
Sridhar Seshasayee
2ccd861d04
Merge pull request #69366 from sseshasa/wip-fix-ok-to-upgrade-osd-sort-order
mgr/DaemonServer: Aggregate and globally sort OSDs for ok-to-upgrade

Reviewed-by: Radoslaw Zarzynski <rzarzynski@redhat.com>
Reviewed-by: Nitzan Mordechai <nmordech@ibm.com>
2026-06-16 21:46:13 +05:30
Kotresh HR
28a2a2c882 qa/cephfs: Add test for duplicate directory acquire notify
Verify that reloading the mirroring module and removing a directory
does not leave a ghost replayer entry that keeps syncing snapshots.

Fixes: https://tracker.ceph.com/issues/77398
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2026-06-15 16:15:33 +05:30
John Mulligan
d14e816a13
Merge pull request #69289 from anoopcs9/fix-run-samba-perms
cephadm/smb: Bind mount /run with 0755

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Xavi Hernandez <xhernandez@gmail.com>
2026-06-15 15:42:48 -04:00
Ericmzhang
69c30a7d54
Merge pull request #68532 from Ericmzhang/wip-overlapped-roots-autoscale
Mgr: Allow autoscaling for overlapped roots
2026-06-15 10:28:56 -07:00
SrinivasaBharathKanta
ca0bc48a2a
Merge pull request #69005 from Jayaprakash-ibm/wip-jaya-mon-features-test-fix
qa: fix TEST_mon_features feature checks in mon/misc.sh
2026-06-14 04:24:52 +05:30
Kotresh HR
5bfb9a8db3
Merge pull request #68018 from kotreshhr/mirror-asok-metrics
tools/cephfs_mirror: Add metrics
2026-06-13 23:59:00 +05:30
Kotresh HR
1d676c2455 qa: Add mirror metrics testcases
Add testcases for newly introduced mirror
metrics and validate it via 'fs mirror peer status'
asok interface.

Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2026-06-13 00:45:31 +05:30
Kotresh HR
75093b138e qa: Fix the mirroring tests with new nested peer_status output
Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>
2026-06-13 00:43:15 +05:30
Redouane Kachach
6a348c3b49
Merge pull request #69300 from rkachach/fix_issue_mgmt_gw_qa
qa: extend the ignore-list for the mgmt-gateway test suite

Reviewed-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-06-12 15:16:14 +02:00
Redouane Kachach
745f16a58a
qa: extend the ignore-list for the mgmt-gateway test suite
Let's add CEPHADM_AGENT_DOWN and CEPHADM_STRAY_DAEMON errors

Fixes: https://tracker.ceph.com/issues/77131
Signed-off-by: Redouane Kachach <rkachach@ibm.com>
2026-06-12 13:01:07 +02:00
Redouane Kachach
a46a9e45a3
Merge pull request #69299 from rkachach/fix_issue_77130
qa/cephadm: fix test_repos.sh for jammy nodes

Reviewed-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
2026-06-12 12:50:24 +02:00
Aishwarya Mathuria
cb95853a1d
Merge pull request #66885 from amathuria/wip-amat-crimson-merge-support
Crimson PG merging support
2026-06-12 15:18:37 +05:30
Casey Bodley
d27261d0c2 Reapply "qa/rgw/crypt: disable failing kmip testing"
This reverts commit fd20467981.

kmip tests are failing again on ubuntu 24 because PyKMIP doesn't support
python 3.12. we'll be removing ubuntu 22 from main, so can't just pin the
test to that distro in the meantime

we're expecing the nvmeof team to add python 3.12 support in our
ceph/PyKMIP fork, and can reenable kmip testing once that happens

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

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-06-11 14:43:31 -04:00
Kamoltat (Junior) Sirivadhna
cce2a2fcd1
Merge pull request #69402 from Ericmzhang/wip-fix-mon-stretch_cluster
qa: Fix stretch_cluster.py missing function call
Reviewed-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
2026-06-11 09:47:19 -04:00
Sridhar Seshasayee
6761549c5a mgr/DaemonServer: Aggregate and globally sort OSDs for ok-to-upgrade
The 'ok-to-upgrade' command output sorting did not scale accurately
when target CRUSH buckets contained multiple child buckets (e.g., a
chassis containing multiple hosts). OSDs were previously sorted
individually per child bucket and appended sequentially. This created
fragmented, per-host sort segments rather than a globally sorted list
for the parent bucket.

Changes:

1. Fix the issue above by aggregating all child OSDs into a single vector prior
to executing a single, global sort operation based on PG counts. Additionally,
optimize memory efficiency and future-proof the logic by reserving continuous
vector blocks to avoid dynamic heap reallocations.

2. Add integration tests with chassis and rack based CRUSH hierarchies which
verifies the ok-to-upgrade functionality. In addition, the tests crucially
verify the order of OSDs returned is according to the ascending order of
acting PG count. Additionally, make minor fix-ups to lines that determine the
length of a list in JSON response by removing the redundant "| bc".

Fixes: https://tracker.ceph.com/issues/77272
Signed-off-by: Sridhar Seshasayee <sridhar.seshasayee@ibm.com>
2026-06-11 17:42:59 +05:30
Aishwarya Mathuria
4e44d8a160 qa/suites/crimson: Add a test for PG merging in the crimson suite
Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
2026-06-11 10:25:49 +05:30
Anthony D'Atri
d93121a2e3
Merge pull request #60492 from anthonyeleven/more-pgs
src/common/options: Increase autoscaler PG target and overload values
2026-06-10 20:24:36 -04:00
Eric Zhang
c22d5b4f41 qa: Fix task missing function call
lambda was missing function call so always returned true

Signed-off-by: Eric Zhang <emzhang@ibm.com>
2026-06-10 12:41:21 -07:00
Patrick Donnelly
64c2574184
Merge PR #66726 into main
* refs/pull/66726/head:
	doc: Update documentation to reflect new functionality
	test: Add integration tests for EC Omap operations and recovery
	osd: Hook up omap operations in EC pools
	osd: Allow for recovery of OMAP header and entries in EC pools
	doc: Write design document to explain the reasoning behind implementing this feature
	osd: Introduce functions required for EC OMAP support
	osd: Add ECOmapJournal class and relocate OmapUpdateType enum class

Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Alex Ainscow <aainscow@uk.ibm.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2026-06-10 14:30:59 -04:00
Anoop C S
31e1c7bd5e qa/smb: Test SID resolution in AD joined containers
Verify that rpcclient lookupsids resolves domain user SIDs correctly
inside the smbd container, preventing regressions on /run bind mount
permissions that break smbd to winbindd communication.

Fixes: https://tracker.ceph.com/issues/77120
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2026-06-10 17:05:18 +05:30
Jaya Prakash
e24055cc8a
Merge pull request #68984 from Jayaprakash-ibm/wip-faster-alloc-recovery-testing
qa: Add Teuthology tests for BlueStore faster allocation recovery

Reviewed-by: Jaya Prakash <jayaprakash@ibm.com>
2026-06-10 17:01:07 +05:30
Anthony D'Atri
b54ed6d6a4 qa/workunits/mon: Update pg_autoscaler.sh in conjunction with https://github.com/ceph/ceph/pull/60492
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2026-06-09 13:42:27 -07:00
Eric Zhang
7f9e383ecb qa: Add overlapped roots test case
Added overlapped roots test case for CRUSH rules
rule zone-1-only
  step take zone us-east-1
  step chooseleaf firstn 3 type host
  step emit

rule zone-2-only
  step take zone us-east-2
  step chooseleaf firstn 3 type host
  step emit

rule zone-3-only
  step take zone us-east-3
  step chooseleaf firstn 3 type host
  step emit

rule default
   step take default
  step chooseleaf firstn 3 type host
  step emit

and osd tree
    -1         6.00000  root default
     -8         6.00000      region us-east
     -5         2.00000          zone us-east-1
    -13         1.00000              host host0
      0    ssd  1.00000                  osd.0
    -14         1.00000              host host1
      1    ssd  1.00000                  osd.1
     -6         2.00000          zone us-east-2
    -15         1.00000              host host2
      2    ssd  1.00000                  osd.2
    -16         1.00000              host host3
      3    ssd  1.00000                  osd.3
     -7         2.00000          zone us-east-3
    -17         1.00000              host host4
      4    ssd  1.00000                  osd.4
    -18         1.00000              host host5
      5    ssd  1.00000                  osd.5

    -1: pg_target = 300
    -5: pg_target = 100
    -6  pg_target = 100
    -7: pg_target = 100

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

Signed-off-by: Eric Zhang <emzhang@ibm.com>
2026-06-09 13:16:33 -07:00
Laura Flores
b09b866f12
Merge pull request #68837 from NitzanMordhai/wip-nitzan-cephtool-singleton-bluestore-evicting-unresponsive-client
qa: ignore evicted client warnings for singletone bluestore

Reviewed-by: Radosław Zarzyński <Radoslaw.Adam.Zarzynski@ibm.com>
Reviewed-by: Yuri Weinstein <yweinste@ibm.com>
2026-06-09 13:59:59 -05:00
John Mulligan
3700e6abaf
Merge pull request #68825 from phlogistonjohn/jjm-smb-ctl-tool-fe
smb: add a smb remote control client tool frontend

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
2026-06-09 14:21:32 -04:00
Casey Bodley
8456be4d6e
Merge pull request #69253 from cbodley/wip-76725
osdc: deliver neorados completions to associated executor

Reviewed-by: Adam Emerson <aemerson@redhat.com>
Reviewed-by: Shilpa Jagannath <smanjara@redhat.com>
2026-06-09 08:24:19 -04:00
Matty Williams
7d684df763 test: Add integration tests for EC Omap operations and recovery
Assisted-by: Bob
Used for writing tests following the pattern of existing tests.

Fixes: https://tracker.ceph.com/issues/74188
Signed-off-by: Matty Williams <Matty.Williams@ibm.com>
2026-06-09 09:46:07 +01:00