Previously, we had memory leak in the test_bluestore_types.cc tests where
`BufferCacheShard` and `OnodeCacheShard` objects were allocated with
raw pointers but never freed, causing leaks detected by AddressSanitizer.
ASan rightly pointed this out:
```
Direct leak of 224 byte(s) in 1 object(s) allocated from:
#0 0x55a7432a079d in operator new(unsigned long) (/home/jenkins-build/build/workspace/ceph-pull-requests/build/bin/unittest_bluestore_types+0xf2e79d) (BuildId: c3bec647afa97df6bb147bc82eac937531fc6272)
#1 0x55a743523340 in BlueStore::BufferCacheShard::create(BlueStore*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, ceph::common::PerfCounters*) /home/jenkins-build/build/workspace/ceph-pull-requests/src/os/bluestore/Bl
ueStore.cc:1678:9
#2 0x55a74330b617 in ExtentMap_seek_lextent_Test::TestBody() /home/jenkins-build/build/workspace/ceph-pull-requests/src/test/objectstore/test_bluestore_types.cc:1077:7
#3 0x55a7434f2b2d in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/src/gtest.
cc:2653:10
#4 0x55a7434b5775 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/src/gtest.cc:
2689:14
#5 0x55a74347005d in testing::Test::Run() /home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/src/gtest.cc:2728:5
```
```
Direct leak of 9928 byte(s) in 1 object(s) allocated from:
#0 0x7ff249d21a2d in operator new(unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:86
#1 0x6048ed878b76 in BlueStore::OnodeCacheShard::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::common::PerfCounters*) /home/kefu/dev/ceph/src/os/bluestore/BlueStore.cc:1219
#2 0x6048ed66d4f9 in GarbageCollector_BasicTest_Test::TestBody() /home/kefu/dev/ceph/src/test/objectstore/test_bluestore_types.cc:2662
#3 0x6048ed820555 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/kefu/dev/ceph/src/googletest/googletest/src/gtest.cc:2653
#4 0x6048ed80c78a in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/kefu/dev/ceph/src/googletest/googletest/src/gtest.cc:2689
#5 0x6048ed7b8bfa in testing::Test::Run() /home/kefu/dev/ceph/src/googletest/googletest/src/gtest.cc:2728
```
In this change, we replace raw pointer allocation with unique_ptr to
ensure automatic cleanup when the objects go out of scope.
` Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Casey Bodley [Wed, 28 May 2025 20:33:44 +0000 (16:33 -0400)]
script: ceph-backport.sh adds redmine key to api requests
the ceph-backport.sh script recently started failing with:
> ceph-backport.sh: DEBUG: Considering Redmine issue: https://tracker.ceph.com/issues/70374 - is it in the Backport tracker?
> ceph-backport.sh: DEBUG:
> ceph-backport.sh: ERROR: Issue https://tracker.ceph.com/issues/70374 is not a Backport
because the command `curl --silent https://tracker.ceph.com/issues/70374.json`
now fails with `HTTP/2 401` (Unauthorized) and returns an empty string
the command succeeds after adding my redmine key as a query param like
some of the other redmine requests
Laura Flores [Tue, 27 May 2025 17:09:04 +0000 (12:09 -0500)]
qa/crontab: update priority for tentacle upgrade command
The current prio (100) results in this error:
```
teuthology.exceptions.ScheduleFailError: Scheduling failed: Unable to schedule 244 jobs with priority 100.
```
I tested the prio on 150 on my teuthology setup, and this passes with the amount of jobs.
Connor Fawcett [Mon, 9 Dec 2024 17:02:11 +0000 (17:02 +0000)]
qa/tasks: Add a task which performs an offline check of the consistency of parity shards
Add a Python script which can be used to scan a Ceph cluster, find any erasure coded data objects and
check them for consistency. This is achieved by reading the data shards for a given object, running the data shards
through the existing EC tool and verifying the output matches the parity shards stored on the OSDs.
This commit adds a new teuthology task but does not add it to any YAMLs currently, this work will be
expanded on in future commits.
crimson/osd/osd_operations/pg_advance_map: Add splitting as a function
As we initiate pg splitting as part of the PGAdvanceMap workflow, it is not required
to maintain it as a separate osd_operation.
A new function in PGAdvanceMap - split_pg(), will now take care of the splitting workflow
if we detect split children in an OSD map.
Since we do not follow the same queuing system as classical OSD in crimson, we will not
need to maintain pg_num_history. This makes the splitting check simpler.
With most of the splitting code being part of PGAdvanceMap, it makes sense to have the
splitting check there as well and leave broadcast_map_to_pgs untouched.
Ville Ojamo [Mon, 26 May 2025 09:54:41 +0000 (16:54 +0700)]
doc/radosgw: Small improvements in cloud-restore.rst
Add a label in file cloud-transition.rst for linking to it.
Change a link using full URL of Ceph docs to use :ref: and said label.
Indent text in unordered lists so that they are rendered as list items.
Use consistently double backticks for references to configuration
values.
Change one external link pointing to old v1 of AWS CLI to the
recommended v2 docs.
Change another external link pointing to old v1 of AWS CLI to the
current AWS API doc instead and add link text instead of rendering the
whole URL.
However, both the old and the new text (which are the same) do not
currently seem to explicitly confirm the claim "storage class of
restored objects should remain unchanged".
Change one CLI command prompt to privileged prompt because it uses
radosgw-admin.
Use "lifecycle" consistently instead of "Life Cycle" in one place and
put the acronym "LC" inside parenthesis instead of the full spelling.
Fix typo "Th" into "The".
Use admonitions instead of spelling out "Note: [...]".
Small improvement to language in one admonition.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
myoungwon oh [Fri, 23 May 2025 13:52:14 +0000 (13:52 +0000)]
crimson/os/seastore: increase OI_MAX_LENGTH to avoid storing OI data in the omap tree
Due to a recent change (adding shard_versions in object_info_t),
the size of OI has increased to 236. This causes to store OI data to the omap tree
because the size is over than OI_MAX_LENGTH. As a result, this results in
performance drop in small random write.
Zac Dover [Fri, 23 May 2025 10:54:58 +0000 (20:54 +1000)]
doc/mgr: edit nfs.rst
Edit doc/mgr/nfs.rst. Improve some of the English.
This is part of a project to separate out the twenty-five files that
were committed to https://github.com/ceph/ceph/pull/62782.
This commit and the PR of which it is a part includes the changes made
in https://github.com/ceph/ceph/pull/62782 and some corrections to
glaring grammatical errors. However, this file could use a careful
grammar pass.
Zac Dover [Fri, 23 May 2025 10:24:01 +0000 (20:24 +1000)]
doc/mgr: edit modules.rst.
Edit doc/mgr/modules.rst. Improve some of the English.
This is part of a project to separate out the twenty-five files that
were committed to https://github.com/ceph/ceph/pull/62782.
This commit and the PR of which it is a part includes the changes made
in https://github.com/ceph/ceph/pull/62782 and some corrections to
glaring grammatical errors. However, this file could use a careful
grammar pass. As it currently stands, it contains run-on sentences and
English that is acceptable in conversation but not acceptable in written
communication.
Ville Ojamo [Fri, 23 May 2025 09:48:07 +0000 (16:48 +0700)]
doc/radosgw: Fix capitalization, tab use, punctuation in two files
Use title case consistently in section titles.
Capitalize first letter for Ceph, Unix, Luminous.
Capitalize RGW and NFS-Ganesha consistently.
Remove a colon from end of a section title in nfs.rst.
Add full stops at end of two sentences in sync-modules.rst.
Change tabs into four spaces in nfs.rst.
Also use comments more sensibly in logging example in nfs.rst:
- Indent the comments consistently, fixing a leading space in the
beginning of the rendered preformatted block.
- Also comment out the closing brace.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>