The client_force_lazyio option is currently marked as supporting
runtime updates in the configuration schema, but this is misleading.
The value is read once during each file open/create and stored in
the file flags. There is no config observer registered to handle
dynamic updates, and there is no logic to propagate changes to the
already opened file handles.
This patch adds the NO_RUNTIME flag to the option definition to
correctly reflect reality.
Fixes: https://tracker.ceph.com/issues/77451
Signed-off-by: Xiubo Li <xiubo.li@clyso.com>
Add documentation for --client-compat parameter in 'cluster create'
command and new 'cluster update client-compat' command. This feature
enables macOS-specific SMB optimizations (fruit VFS, streams_xattr)
and can be set during cluster creation or updated for existing clusters.
Signed-off-by: Shweta Sodani <shsodani@redhat.com>
Add comprehensive test coverage for the new client compatibility
feature that enables macOS-specific SMB optimizations:
- test_enums.py: Add tests for ClientSupportMode enum values
(DEFAULT and MACOS) and string representation
- test_resources.py: Add tests for cluster client_compat field,
effective_client_compat property, and is_macos_compatibility_enabled
property with different mode configurations
- test_smb.py: Add integration tests for cluster_update_client_compat
CLI command including successful updates and error handling for
non-existent clusters
These tests ensure the client compatibility mode can be properly
set, retrieved, and updated at the cluster level.
Signed-off-by: Shweta Sodani <shsodani@redhat.com>
43dd4cbd37 bumped the rocksdb submodule to v7.10.2 for CVE-2022-23476,
dropping the <cstdint> includes the v7.9.2 pin carried.
db/blob/blob_file_meta.h uses uint64_t but no longer includes <cstdint>,
so it compiles only where another header pulls <cstdint> in transitively.
GCC with libstdc++ 16.1.0 no longer does, so the build fails:
db/blob/blob_file_meta.h: error: 'uint64_t' has not been declared
our targeted distros still pull it in, so the failure went unnoticed
there: ubuntu jammy (GCC 11.2.0) and noble (GCC 13.2).
bump the submodule to a cherry-pick of upstream rocksdb 72c3887167,
which fixes the same FTBFS.
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
These variables are only read inside assert(), which is compiled out
under NDEBUG. Mark them [[maybe_unused]] to silence the warnings while
keeping the debug-only assert() style used by the surrounding code:
src/crimson/os/seastore/lba/btree_lba_manager.cc:1078: unused variable 'orig_len' [-Wunused-variable]
src/crimson/os/seastore/omap_manager/log/log_manager.cc:73: variable 'ret' set but not used [-Wunused-but-set-variable]
src/crimson/os/seastore/transaction_manager.cc:382: variable 'intermediate_key' set but not used [-Wunused-but-set-variable]
src/mgr/PyModule.cc:166,186: unused variable 'r' [-Wunused-variable]
Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
Plain assert() is compiled out under NDEBUG, leaving the checked
variables unused. Use the always-evaluated gtest macros instead.
src/test/crimson/seastore/test_cbjournal.cc:586: variable 'old_written_to' set but not used [-Wunused-but-set-variable]
src/test/crimson/seastore/test_btree_lba_manager.cc:345: unused structured binding declaration [-Wunused-variable]
Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
Fixing these warnings:
src/crimson/os/seastore/seastore.cc:83: 'omaptree_initialize' defined but not used [-Wunused-function]
src/crimson/osd/replicated_recovery_backend.cc:733: 'nullopt_if_empty' defined but not used [-Wunused-function]
src/test/rgw/test_rgw_kms_cache.cc:63: 'rethrow' defined but not used [-Wunused-function]
src/test/librados/test_cxx.cc:215: variable 'cmd' set but not used [-Wunused-but-set-variable]
Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
* refs/pull/69446/head:
python-common/cryptotools: stop using the removed X509Req API
Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
Make PeerReplayer::add_directory() idempotent when the mgr re-sends
acquire for a directory already in the replayer list.
Fixes: https://tracker.ceph.com/issues/77398
Signed-off-by: Kotresh HR <khiremat@redhat.com>
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>
pyOpenSSL deprecated OpenSSL.crypto.X509Req in 24.2.0 (2024-07-20) and
removed it in 26.3.0 (2026-06-12). as we don't pin pyopenssl, CI picked
up the new release, and create_self_signed_cert() started failing with:
AttributeError: module 'OpenSSL.crypto' has no attribute 'X509Req'
this took down run-tox-mgr, run-tox-mgr-dashboard-py3 and the mypy check.
we only used X509Req to build a subject name and then copied it into the
X509 cert. so drop it, and set the subject on the cert directly. the
resulting cert stays the same: subject from dname, issuer set to the same
subject, self-signed.
Fixes: https://tracker.ceph.com/issues/77391
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
Update the mirroring documentation and also the
release notes with new metrics introduced and it's
availability via 'fs mirror peer status' asok
interface.
Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>