New leaks when running valgrind in a docker container

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

New leaks when running valgrind in a docker container

Ulrich Hierl

Hi valgrind folk,

I am currently transforming my build-slave from a virtual machine to a docker container. One step of my build is to run valgrind. The problem is that I now get new memory leaks that do not occur on the virtual machine.

The errors come from libc and std::string, here is an example:

==11397== 101 bytes in 1 blocks are possibly lost in loss record 241 of 365
==11397==    at 0x4C29180: operator new(unsigned long) (vg_replace_malloc.c:324)
==11397==    by 0x62ABE98: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11397==    by 0x4FD2F1: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:138)
==11397==    by 0x62ADC45: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11397==    by 0x4D6644: testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*) (gtest.cc:2555)
==11397==    by 0x4B0798: __static_initialization_and_destruction_0(int, int) (ClassFilesManipulator_expensive_tests.cpp:166)
==11397==    by 0x4B8F8B: _GLOBAL__sub_I_ClassFilesManipulator_expensive_tests.cpp (ClassFilesManipulator_expensive_tests.cpp:269)
==11397==    by 0x55FE6C: __libc_csu_init (in /home/jenkins/CppLibraries/CppCodeBase/Generated/CompiledBinaries/LinuxMakeGccDebug/CodeAssistant_expensive_tests)
==11397==    by 0x6A30AD4: (below main) (libc-start.c:246)

Now I am not sure if this is a problem of running valgrind in a docker container or if my container has a different libc then my virtual machine which may cause the problem.

Do you have experience with valgrind in a container and are there any known issues?


Cheers Knitschi




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
Reply | Threaded
Open this post in threaded view
|

Re: New leaks when running valgrind in a docker container

Dan Kegel-2
On Sat, Mar 4, 2017 at 9:46 AM, Ulrich Hierl <[hidden email]> wrote:
> 101 bytes in 1 blocks are possibly lost in loss record 241 of 365
> at : operator new(unsigned long)
> by : std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)
> by : char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)
> by : testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*) (gtest.cc:2555)
> by : __static_initialization_and_destruction_0(int, int) (ClassFilesManipulator_expensive_tests.cpp:166)

That looks like an expected and benign leak from google test.
I'd just suppress it, and anything else from testing::internal.
- Dan

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/valgrind-users