qa: suppress Leak_StillReachable mon leak in centos 9 jobs#52639
qa: suppress Leak_StillReachable mon leak in centos 9 jobs#52639
Conversation
|
rados/verify tests either passed or failed from unrelated failures. |
6946c25 to
2bf06a7
Compare
rzarzynski
left a comment
There was a problem hiding this comment.
These suppression rules are very broad. I would feel better if they are more pin-pointed.
I see what you mean. I'll rework the rules so they're more specific to the leaks at hand. |
|
Since we know this is an intentional leak (https://tracker.ceph.com/issues/61774#note-11), can the flag |
Yeah, I was trying not to edit the src code to avoid introducing a larger change so near the reef deadline. However, maybe this is the best option. @rzarzynski thoughts? |
|
I'm not sure the What's interesting is There is void PosixWritableFile::SetWriteLifeTimeHint(Env::WriteLifeTimeHint hint) {
#ifdef OS_LINUX
// Suppress Valgrind "Unimplemented functionality" error.
#ifndef ROCKSDB_VALGRIND_RUN
if (hint == write_hint_) {
return;
}
if (fcntl(fd_, F_SET_RW_HINT, &hint) == 0) {
write_hint_ = hint;
}
#else
(void)hint;
#endif // ROCKSDB_VALGRIND_RUN
#else
(void)hint;
#endif // OS_LINUX
}... and #ifdef ROCKSDB_VALGRIND_RUN
#define MUST_FREE_HEAP_ALLOCATIONS 1
#endif // ROCKSDB_VALGRIND_RUN
// Coding guidelines say to avoid static objects with non-trivial destructors,
// because it's easy to cause trouble (UB) in static destruction. This
// macro makes it easier to define static objects that are normally never
// destructed, except are destructed when running under ASAN. This should
// avoid unexpected, unnecessary destruction behavior in production.
// Note that constructor arguments can be provided as in
// STATIC_AVOID_DESTRUCTION(Foo, foo)(arg1, arg2);
#ifdef MUST_FREE_HEAP_ALLOCATIONS
#define STATIC_AVOID_DESTRUCTION(Type, name) static Type name
constexpr bool kMustFreeHeapAllocations = true;
#else
#define STATIC_AVOID_DESTRUCTION(Type, name) static Type& name = *new Type
constexpr bool kMustFreeHeapAllocations = false;
#endifAll template <class CacheShard>
class ShardedCache : public ShardedCacheBase {
// ...
ShardedCache(size_t capacity, int num_shard_bits, bool strict_capacity_limit,
std::shared_ptr<MemoryAllocator> allocator)
: ShardedCacheBase(capacity, num_shard_bits, strict_capacity_limit,
allocator),
shards_(reinterpret_cast<CacheShard*>(port::cacheline_aligned_alloc(
sizeof(CacheShard) * GetNumShards()))),
destroy_shards_in_dtor_(false) {}
virtual ~ShardedCache() {
if (destroy_shards_in_dtor_) {
ForEachShard([](CacheShard* cs) { cs->~CacheShard(); });
}
port::cacheline_aligned_free(shards_);
}
// ...
void DisownData() override {
// Leak data only if that won't generate an ASAN/valgrind warning.
if (!kMustFreeHeapAllocations) {
destroy_shards_in_dtor_ = false;
}
}In short: if the leaks are related to |
|
@ljflores: ping. |
|
Thanks @rzarzynski, I will work on resolving this. |
|
@ljflores: ping. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
jenkins test make check |
2bf06a7 to
70c9fae
Compare
|
@ljflores Some LeakStillReachable valgrind errors showing up in the test run - https://pulpito.ceph.com/yuriw-2024-03-13_19:25:03-rados-wip-yuri6-testing-2024-03-12-0858-distro-default-smithi/7597811 |
|
Thx @amathuria, will look and revise. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
Unstale please! |
70c9fae to
b65969e
Compare
|
@ljflores this PR failed to merge with other PRs error: Pulling is not possible because you have unmerged files. Why do we retest it again? It was tested and approved, see above ^^^ |
These leaks came about when we changed the distro from centos 8 to centos 9. Fixes: https://tracker.ceph.com/issues/61774 Signed-off-by: Laura Flores <[email protected]>
b65969e to
fe644c7
Compare
|
Tests results are a lot cleaner now: Failures are known, tracked by: |
qa: suppress Leak_StillReachable mon leak in centos 9 jobs
Fixes: https://tracker.ceph.com/issues/61774
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows