Dhairya Parmar [Thu, 27 Feb 2025 12:16:40 +0000 (17:46 +0530)]
qa: test fio with multiple versions of NFS
This is coming from https://tracker.ceph.com/issues/69347, basically fio fails in
teuthology with v4.2 but passes with older versions (like v4.1). v4.2 on local/QE
machines has worked fine. This needs RCA, looking at libcephfs logs, it doesn't
look like it's CephFS. A thorough probe is needed, hence adding YAMLs to test
fio with different versions which also helps testing ceph client with different
version of NFS to help trace any regression.
unset.yaml is basically 4.2 for now but That may change someday or the nfs linux
driver may soon "add" things beyond 4.2 without adding an explicit version bump.
Fixes: https://tracker.ceph.com/issues/70203 Signed-off-by: Dhairya Parmar <dparmar@redhat.com> Co-authored-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 95dcfd9d8c9f3c99e017050d6069ef9c41967d55)
Casey Bodley [Fri, 3 Oct 2025 16:24:18 +0000 (12:24 -0400)]
rgw: fix 'bucket rm --bypass-gc' for copied objects
the `--bypass-gc` argument to `radosgw-admin bucket rm` causes us to
call `RadosBucket::remove_bypass_gc()`, which loops over the tail
objects and removes each with `RGWRados::delete_raw_obj_aio()`
however, this was removing the objects with `cls_rgw_remove_obj()`,
which is for head objects, not tails. tail objects must be removed with
`cls_refcount_put()`, which preserves them until the last copy is
removed
rename `delete_raw_obj_aio()` to `delete_tail_obj_aio()` to clarify its
purpose
Nitzan Mordechai [Wed, 22 Oct 2025 05:41:56 +0000 (05:41 +0000)]
tasks/cbt_performance: Tolerate exceptions during performance data updates
If an exception occurs during the POST request to update CBT performance,
log the error instead of failing the entire job. This ensures that
intermittent update failures do not block the main workflow.
The unlink subcommand did not handle unsharded bucket indices
appropriately. These are when the number of shards listed in the
bucket instance object is 0. In that case there will actually be 1
shard.
When number of shards as 0 is passed into the function that maps
object names to shards, it returns -1. And that was not handled
properly. That is now fixed.