Ville Ojamo [Tue, 20 Jan 2026 06:17:44 +0000 (13:17 +0700)]
doc/rados: fix links in operations/cache-tiering.rst
Change a link using an external link definition to ref that was missed
in commit 49af82c, PR #66943.
Remove a sentence that also linked to the same destination because the
destination had no cache tier configuration or default values that the
text promised.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Gil Bregman [Mon, 19 Jan 2026 12:18:03 +0000 (14:18 +0200)]
mgr/cephadm: Add some new fields to the cephadm NVMEoF spec file. Fixes: https://tracker.ceph.com/issues/74446 Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
Aashish Sharma [Wed, 17 Dec 2025 09:21:14 +0000 (14:51 +0530)]
monitoring: make cluster matcher backward compatible for pre-7.1 metrics
Ceph 18.* adds a `cluster` label to all Prometheus metrics. When
upgrading from earlier releases, historical metrics lack this label
and are excluded by Grafana queries that strictly match on `cluster`.
Update the shared Grafana matcher logic to use a regex matcher that
also matches series without the `cluster` label, restoring visibility
of pre-upgrade metrics while preserving multi-cluster behavior.
Patrick Donnelly [Wed, 14 Jan 2026 16:08:04 +0000 (11:08 -0500)]
script/ptl-tool: fix typo
Traceback (most recent call last):
File "/home/batrick/scm/ceph/src/script/ptl-tool.py", line 657, in <module>
File "/home/batrick/scm/ceph/src/script/ptl-tool.py", line 654, in main
File "/home/batrick/scm/ceph/src/script/ptl-tool.py", line 464, in build_branch
UnboundLocalError: cannot access local variable 'trailer_commit' where it is not associated with a value
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Ville Ojamo [Thu, 15 Jan 2026 07:22:29 +0000 (14:22 +0700)]
doc/rados: improve troubleshooting-pg.rst
Note that a link to a walkthrough uses deprecated Filestore.
Reported in doc bugs pad.
Fix capitalization, use OSD instead of ceph-osd.
Improve language in a list.
Remove escaping from slashes in PG query output, tested on Quincy.
Don't use spaces in states like active+remapped consistently.
Add label for incoming links and change them to refs.
Use privileged prompt for CLI commands, don't highlight in console output.
Use double backticks consistently. Improve markup.
Remove spaces at the end of lines.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Ville Ojamo [Fri, 16 Jan 2026 06:47:44 +0000 (13:47 +0700)]
doc/rados: use ref for links and improve links in operations
Add labels for doc top and CRUSH MSR in crush-map.rst.
Add a see more link to crush-map-edits.rst from crush-map.rst.
Use ref for linking if labels were added or existed already in a few
related files.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Adam C. Emerson [Thu, 8 May 2025 18:34:54 +0000 (14:34 -0400)]
{test,rgw,tools}: Explicitly use Boost.Process v1
Boost 1.88 removed the default of using the v1 interface
automatically. See https://github.com/boostorg/process/issues/480 for
an example.
https://www.boost.org/doc/libs/1_88_0/libs/process/doc/html/index.html#version_2
describes the new, preferred version which we probably want to migrate
to eventually.
In this change we simply include the v1 files and change the namespace
we alias.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Adam C. Emerson [Thu, 15 Jan 2026 00:58:15 +0000 (19:58 -0500)]
build: Disable `FindBoost` for Boost's included cmake config
Boost has included this since 1.70 and CMake has deprecated the
non-config version since 3.30.
See also
https://cmake.org/cmake/help/latest/policy/CMP0167.html#policy:CMP0167
We enable CMP0167 (The `FindBoost` module is removed.) to force cmake
to use the installed Boost configuration files rather than its own
detection.
We also enable CMP0144 (`find_package()` uses upper-case
`<PACKAGENAME>_ROOT` variables.) to ensue that the `BOOST_ROOT`
parameter continues to function in the config-style `find_package`.
`BuildBoost.cmake` is updated to add the `Boost::headers` interface
target to match configured system boost (retaining the Boost::boost
alias).
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Venky Shankar [Wed, 14 Jan 2026 13:08:58 +0000 (18:38 +0530)]
pybind/cephfs: invoke fcopyfile() libcephfs API without holding GIL
fcopyfile() performs a read+write cycle on the entire file to be copied.
The python binding invokes this with the GIL held. This causes the GIL
to be held for extended duration causing other python threads to be
blocked on acquiring the GIL when shceduled.
Ville Ojamo [Tue, 13 Jan 2026 09:52:50 +0000 (16:52 +0700)]
doc/_ext: unbreak releases timeline if other than 3 active releases
The Timeline custom Sphinx directive expected exactly three active
releases listed as arguments. While this is fine for the usual situation
of three active releases, improving the directive to support any number
of active releases may benefit e.g. testing.
Previously, using anything other than 3 release names in the
releases/index.rst ceph_timeline directive caused the release dates
table to not be rendered.
Use the same pattern as the TimelineGantt custom directive by requiring
two arguments, with the second argument being a space-separated string
of release names.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Kefu Chai [Mon, 12 Jan 2026 23:47:11 +0000 (07:47 +0800)]
test/bluestore: fix memory leaks in ExtentMap.reshard_failure test
The ExtentMap.reshard_failure test was leaking memory by not properly
cleaning up the OnodeCacheShard and BufferCacheShard objects it created.
ASan reported:
Direct leak of 9928 byte(s) in 1 object(s) allocated from:
#1 BlueStore::OnodeCacheShard::create() BlueStore.cc:1221
#2 ExtentMap_reshard_failure_Test::TestBody() test_bluestore_types.cc:1244
Direct leak of 224 byte(s) in 1 object(s) allocated from:
#1 BlueStore::BufferCacheShard::create() BlueStore.cc:1680
#2 ExtentMap_reshard_failure_Test::TestBody() test_bluestore_types.cc:1246
SUMMARY: AddressSanitizer: 10288 byte(s) leaked in 8 allocation(s).
Fix by:
1. Wrapping coll and onode in an additional scope block to ensure they
are destroyed before the cache shards (releasing all blob references)
2. Adding proper cleanup with delete bc and delete oc at test end
This matches the cleanup pattern used in BlueStoreFixture::TearDown().
Kefu Chai [Wed, 24 Dec 2025 03:35:18 +0000 (11:35 +0800)]
cmake: remove Boost::system linkage for boost 1.89+
In boost 1.89, the stub compiled library for Boost.System was removed.
According to the boost 1.89 release notes: "The stub compiled library
has been removed; System has been header-only since release 1.69.",
See https://www.boost.org/releases/1.89.0/ .
This change removes or replaces Boost::system linkage throughout the
codebase:
1. Removed "system" from BOOST_COMPONENTS in the root CMakeLists.txt,
as the library no longer exists in boost 1.89+.
2. Where Boost::system was the only linked boost library, replaced it
with Boost::boost (the header-only meta-target) to maintain access
to Boost.System's header-only functionality.
3. Where other boost libraries were already linked (e.g., Boost::thread,
Boost::regex, Boost::filesystem), removed Boost::system entirely, as
the header-only System library dependency is automatically satisfied
by other boost components.
This is not a breaking change since the minimum required boost version
for this project is 1.87, where Boost.System was already header-only
(only the stub compiled library remained for compatibility).
Ville Ojamo [Mon, 12 Jan 2026 06:47:31 +0000 (13:47 +0700)]
doc/radosgw: improve DNS host name config in s3/commons.rst
Clarify that not only virtual-host-based access is configured this way.
Use Monitor config database instead of ceph.conf and add link to it.
Fix typo. Use privileged prompt for CLI example command.
List that comma is the delimitor used in rgw_dns_name config.
Use double backticks consistently for literal strings.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Kefu Chai [Tue, 13 Jan 2026 01:19:17 +0000 (09:19 +0800)]
common/options: fix heap-use-after-free by using never-destroyed static
The config schema map was using string_view keys that pointed to the
name field of Option objects stored in the global ceph_options vector.
When the vector is destroyed during program exit, the Option objects
are freed, but background threads (like BlueStore::MempoolThread) may
still be accessing config options, causing use-after-free.
ASan reported:
READ of size 19 at 0x503000047c80 thread T411
#12 md_config_t::find_option(std::string_view) const config.cc:261
#17 BlueStore::MempoolThread::entry() BlueStore.cc:5591
0x503000047c80 is located 0 bytes inside of 20-byte region
freed by thread T0 here:
#7 Option::~Option() options.h:15
#13 std::vector<Option>::~vector() stl_vector.h:730
#14 __run_exit_handlers stdlib/exit.c:113
Fix by converting ceph_options from a global variable to a function
get_ceph_options() that returns a reference to a static pointer that
is never destroyed. This ensures the Option objects remain valid for
the lifetime of the program, even during exit when background threads
may still be accessing them.
This preserves the memory efficiency of using string_view keys in the
schema map while fixing the lifetime issue.
Ville Ojamo [Fri, 9 Jan 2026 09:45:59 +0000 (16:45 +0700)]
doc/cephadm: small improvements continued
Fix invalid section title and add a label for ref.
Link to the new label instead of telling which section to read.
Remove a sentence no longer relevant with config db.
Remove stray spaces, add newlines per style, fix capitalization.
Use privileged prompt when necessary.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>