```
Building C object src/libcephfs_proxy/CMakeFiles/cephfs_proxy.dir/proxy_link.c.o
/home/./ceph/src/libcephfs_proxy/proxy_link.c:198:10: warning: arithmetic on a pointer to void is a GNU extension [-Wgnu-pointer-arith]
198 | buffer += len;
| ~~~~~~ ^
/home/./ceph/src/libcephfs_proxy/proxy_link.c:232:18: warning: arithmetic on a pointer to void is a GNU extension [-Wgnu-pointer-arith]
232 | iov->iov_base += len;
| ~~~~~~~~~~~~~ ^
/home/./ceph/src/libcephfs_proxy/proxy_link.c:268:18: warning: arithmetic on a pointer to void is a GNU extension [-Wgnu-pointer-arith]
268 | iov->iov_base += len;
| ~~~~~~~~~~~~~ ^
/home/./ceph/src/libcephfs_proxy/proxy_link.c:328:17: warning: arithmetic on a pointer to void is a GNU extension [-Wgnu-pointer-arith]
328 | iov->iov_base += sizeof(proxy_link_req_t);
| ~~~~~~~~~~~~~ ^
/home/./ceph/src/libcephfs_proxy/proxy_link.c:391:17: warning: arithmetic on a pointer to void is a GNU extension [-Wgnu-pointer-arith]
391 | iov->iov_base += sizeof(proxy_link_ans_t);
| ~~~~~~~~~~~~~ ^
5 warnings generated.
```
```
[460/1945] Building C object src/erasure-code/jerasure/CMakeFiles/jerasure_objs.dir/jerasure/src/jerasure.c.o
ceph/src/erasure-code/jerasure/jerasure/src/jerasure.c:722:7: warning: variable 'ddf' set but not used [-Wunused-but-set-variable]
722 | int ddf, cdf;
| ^
ceph/src/erasure-code/jerasure/jerasure/src/jerasure.c:722:12: warning: variable 'cdf' set but not used [-Wunused-but-set-variable]
722 | int ddf, cdf;
| ^
ceph/src/erasure-code/jerasure/jerasure/src/jerasure.c:777:7: warning: variable 'ddf' set but not used [-Wunused-but-set-variable]
777 | int ddf, cdf;
| ^
ceph/src/erasure-code/jerasure/jerasure/src/jerasure.c:777:12: warning: variable 'cdf' set but not used [-Wunused-but-set-variable]
777 | int ddf, cdf;
| ^
4 warnings generated.
```
Matan Breizman [Mon, 17 Feb 2025 07:39:19 +0000 (07:39 +0000)]
src/CMakeLists.txt: add -Wno-vla-cxx-extension to clang
The following warning of:
```
error: variable length arrays in C++ are a Clang extension
[-Werror,-Wvla-cxx-extension]
```
is enabled by default in clang 18 and above.
Disable it in our builds due to large anmount of warnings.
We can revert this once we handle some of the warnings in future PRs.
Matan Breizman [Sun, 16 Feb 2025 16:43:50 +0000 (16:43 +0000)]
script/run-make: bump up to clang 19
Supporting new stable compilers releases early on
should make it easier in the future by preventing introduction of
deperacted code.
As this PR already upgrades to 16 with the relevant fixes, we can
use this opportunity to upgrade to the last stable release available.
Note: Most distinct change here is that -Wvla-extension enabled
by default and will result in lots of warnings.
Matan Breizman [Sun, 16 Feb 2025 14:30:13 +0000 (14:30 +0000)]
test/objectstore/..ops_replayer: cleanup include std::format
clang16 hides std::format behind `-fexperimental-library` [1].
This is no longer the case with clang 17 [2].
As std::fmt is not used in this file we can clean it up for now.
Note: Future commits will aim to switch to clang17.
Matan Breizman [Sun, 16 Feb 2025 13:18:18 +0000 (13:18 +0000)]
cmake/modules/BuildQATzip: Disable errors
qatzip/configure.ac enables -Werror. However, newer compilers
(e.g clang 16) will not compile with the existing warnings
identified. The fixes for the warnings are not merged yet [1]
in the submodule. Until then, in order to allow for compiler
upgrade - we should disable the problematic errors.
Matan Breizman [Mon, 10 Feb 2025 11:12:19 +0000 (11:12 +0000)]
src/script/run-make.sh: clang 14->16
Currently our jammy ci (jenkins) builders are only able to
(apt) install clang 14 as the latest version available.
Clang stable is already at 19 today (i.e we're 5 major releases behind).
Meaning, full support of C++20 and some bugs [1] requiring us to update
the compiler used for make check.
As updating to Ubuntu 24 is not feasable in the near future and
containerized builds is not yet merged - with this patch, we
would get clang-16 directly form llvm installation script.
Note: discover_compiler() would prefer clang-16 even if
clang-14 will be installed by apt in INSTALL_EXTRA_PACKAGES
defined below.
Nizamudeen A [Thu, 20 Feb 2025 09:10:28 +0000 (14:40 +0530)]
Merge pull request #61225 from rhcs-dashboard/rgw-ratelimit-integration1
mgr/dashboard: Rgw ratelimit feature for user and bucket
Reviewed-by: Aashish Sharma <aasharma@redhat.com> Reviewed-by: Ankush Behl <cloudbehl@gmail.com> Reviewed-by: Mark Nelson <mnelson@redhat.com> Reviewed-by: Nizamudeen A <nia@redhat.com> Reviewed-by: Naman Munet <nmunet@redhat.com>
Ronen Friedman [Thu, 20 Feb 2025 08:01:44 +0000 (10:01 +0200)]
Merge pull request #61812 from ronen-fr/wip-rf-fstab
qa/standalone: do not use /etc/fstab as an always-there bytes source Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Ronen Friedman [Thu, 13 Feb 2025 16:53:53 +0000 (10:53 -0600)]
qa/standalone: do not use /etc/fstab as an always-there bytes source
Multiple tests use /etc/fstab when a small data file is
required as input. After all, as some comments say:
# something that is always there
Alas - it's not always there. Not in containers.
Replacing with a newly-created temporary file filled with
random bytes.
For completeness - replacing similar references to
/etc/resolv.conf (as a source for random objects) in
the standalone tests, too.
See: https://github.com/llvm/llvm-project/commit/f46d1463b835560d90ad3ac02b63c771e4ebe566
```
common/interruptible_future.h:1182:16: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
1182 | ).template handle_interruption(std::move(efunc));
| ^
1 error generated.
```
Matan Breizman [Mon, 17 Feb 2025 10:00:34 +0000 (10:00 +0000)]
crimson/common/operation: fix decltype usage
```
ceph/src/crimson/common/operation.cc
In file included from /home/matan/ceph/src/crimson/common/operation.cc:4:
/home/matan/ceph/src/crimson/common/operation.h:312:31: error: no member named 'events' in 'AggregateBlockingEvent<T>'
312 | typename decltype(event.events)::iterator iter;
| ~~~~~ ^
1 error generated.
```
Zac Dover [Tue, 18 Feb 2025 13:44:15 +0000 (23:44 +1000)]
doc/mgr: edit grammar and formatting of rgw.rst
Improve the grammar and correct the formatting of the "Upgrading root ca
certificates" procedure that was added to the documentation in https://github.com/ceph/ceph/pull/61867
Naman Munet [Wed, 22 Jan 2025 10:59:20 +0000 (16:29 +0530)]
mgr/dashboard: Add confirmation textbox for resource name on delete action
Before:
=====
User was able to delete a single or multiple critical resources like ( images, snapshots, subvolumes, subvolume-groups, pools, hosts , OSDs, buckets, file system, services ) by just clicking on a checkbox.
After:
=====
User now has to type the resource name that they are deleting in the textbox on the delete modal, and then only they will be able to delete the critical resource.
Also from now onwards multiple selection for deletions of critical resources is not possible. Hence, user can delete only single resource at a time. On the other side, non-critical resources can be deleted in one go.
The BucketCacheFixtureInotify1.List2Inotify1 test was failing due to the
count being wrong. Fix the count, and flesh out the test case to test
the cache for deleting and adding. Also, move to per-test fixture, so
tests can't interfere with eachother due to inotify latency.
Fixes: https://tracker.ceph.com/issues/68336 Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
Ilya Dryomov [Mon, 17 Feb 2025 11:41:51 +0000 (12:41 +0100)]
test/rbd_mirror: flush watch/notify callbacks in TestImageReplayer
TestImageReplayer establishes its own (i.e. outside of the SUT code)
watch on the header of the remote image to be able to synchronize the
execution of the test with certain notifications. This watch is
established before the remote image is opened and is teared down until
after the remote image is closed but while the image replayer is still
running. The flush that is part of image close sequence thus isn't
guaranteed to cover all callbacks, especially for snapshot-based
mirroring where UnlinkPeerRequest spawned from Replayer::unlink_peer()
generates a notification on the remote image for each completed unlink.
Since TestImageReplayer further immediately deletes C_WatchCtx, pretty
much any test can segfault when C_WatchCtx::handle_notify() is invoked
by TestWatchNotify infrastructure. Because it's a virtual method, the
segfault often involves a completely bogus instruction pointer:
Ronen Friedman [Tue, 11 Feb 2025 12:52:38 +0000 (06:52 -0600)]
osd/scrub: clean-up scrub-store IDs generation
The Scrub Store IDs (used to identify OMAP entries used for storing
object-specific error data) are generated by attaching some prefix to
the text representation of virtual (invented) hobjects.
This commit cleans up the code by moving the name generation
process (creating temporary un-needed objects, then
extracting the to_str() representation of their identity)
into separate functions.