hazelcast / hazelcast/hazelcast-cpp-client

Memory Leak in tests [API-2347]

Open
#1,282 2 comments 0 reactions 0 assignees View on GitHub
to-jira
Dominant language
C++
Stars
91
Forks
54
Avg merge
1d 12m
Merged PRs (30d)
5

Description

Raised from https://github.com/hazelcast/hazelcast-cpp-client/pull/1279#issuecomment-2887783682

> The good news is that `asan` has [already spotted some issues](https://github.com/hazelcast/hazelcast-cpp-client/actions/runs/15056847655/job/42324494269):
>
> ```
> ==37969==ERROR: LeakSanitizer: detected memory leaks
>
> Direct leak of 48 byte(s) in 2 object(s) allocated from:
> #0 0x7fda668fe548 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
> #1 0x5564bcfc6901 in hazelcast::client::test::thread_pool::ThreadPoolTest_testEqualThreadAndJobs_Test::TestBody() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/hazelcast/test/src/HazelcastTests8.cpp:2733
> #2 0x5564be3078f3 in void testing::internal::HandleSehExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2433
> #3 0x5564be2f8fa0 in void testing::internal::HandleExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2469
> #4 0x5564be2a3afd in testing::Test::Run() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2508
> #5 0x5564be2a4fd0 in testing::TestInfo::Run() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2684
> #6 0x5564be2a5d2b in testing::TestSuite::Run() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2816
> #7 0x5564be2c28ef in testing::internal::UnitTestImpl::RunAllTests() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:5338
> #8 0x5564be30aca8 in bool testing::internal::HandleSehExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2433
> #9 0x5564be2fb991 in bool testing::internal::HandleExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:2469
> #10 0x5564be2bf3ac in testing::UnitTest::Run() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest.cc:4925
> #11 0x5564be3291f0 in RUN_ALL_TESTS() /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/include/gtest/gtest.h:2473
> #12 0x5564be32913c in main /home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/googletest-src/googletest/src/gtest_main.cc:45
> #13 0x7fda6602a1c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
> #14 0x7fda6602a28a in __libc_start_main_impl ../csu/libc-start.c:360
> #15 0x5564bc4f0e14 in _start (/home/runner/work/hazelcast-cpp-client/hazelcast-cpp-client/build/hazelcast/test/src/client_test+0x3e2e14) (BuildId: 1ae11315358a2aa750dab7fc7ac35241e01a2005
> ```
>

We create a new client via a future, but the future is never cleaned up.

https://github.com/hazelcast/hazelcast-cpp-client/blob/02614f2099d3299df815a59530588be6fc2963a9/hazelcast/test/src/HazelcastTests8.cpp#L2733

Context:

https://github.com/hazelcast/hazelcast-cpp-client/blob/02614f2099d3299df815a59530588be6fc2963a9/hazelcast/test/src/HazelcastTests8.cpp#L2683-L2762

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.