[root@test ~]# valgrind --leak-check=full --show-leak-kinds=all --verbose /tmp/server ==5316== Memcheck, a memory error detector ==5316== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==5316== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==5316== Command: /tmp/server ==5316== --5316-- Valgrind options: --5316-- --leak-check=full --5316-- --show-leak-kinds=all --5316-- --verbose --5316-- Contents of /proc/version: --5316-- Linux version 4.9.23-custom.1.el7.x86_64 (root@jenkins.site) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) ) #1 SMP Thu Apr 20 11:32:17 UTC 2017 --5316-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi --5316-- Page sizes: currently 4096, max supported 4096 --5316-- Valgrind library directory: /usr/lib64/valgrind --5316-- Reading syms from /tmp/server --5316-- Reading syms from /usr/lib64/ld-2.17.so --5316-- Reading syms from /usr/lib64/valgrind/memcheck-amd64-linux --5316-- object doesn't have a symbol table --5316-- object doesn't have a dynamic symbol table --5316-- Scheduler: using generic scheduler lock implementation. --5316-- Reading suppressions file: /usr/lib64/valgrind/default.supp ==5316== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-5316-by-root-on-test ==5316== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-5316-by-root-on-test ==5316== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-5316-by-root-on-test ==5316== ==5316== TO CONTROL THIS PROCESS USING vgdb (which you probably ==5316== don't want to do, unless you know exactly what you're doing, ==5316== or are doing some strange experiment): ==5316== /usr/lib64/valgrind/../../bin/vgdb --pid=5316 ...command... ==5316== ==5316== TO DEBUG THIS PROCESS USING GDB: start GDB like this ==5316== /path/to/gdb /tmp/server ==5316== and then give GDB the following command ==5316== target remote | /usr/lib64/valgrind/../../bin/vgdb --pid=5316 ==5316== --pid is optional if only one valgrind process is running ==5316== --5316-- REDIR: 0x4018b90 (ld-linux-x86-64.so.2:strlen) redirected to 0x38075e81 (???) --5316-- Reading syms from /usr/lib64/valgrind/vgpreload_core-amd64-linux.so --5316-- object doesn't have a symbol table --5316-- Reading syms from /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so --5316-- object doesn't have a symbol table ==5316== WARNING: new redirection conflicts with existing -- ignoring it --5316-- old: 0x04018b90 (strlen ) R-> (0000.0) 0x38075e81 ??? --5316-- new: 0x04018b90 (strlen ) R-> (2007.0) 0x04c2cc60 strlen --5316-- REDIR: 0x4018a90 (ld-linux-x86-64.so.2:index) redirected to 0x4c2c810 (index) --5316-- REDIR: 0x4018b10 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c2ddb0 (strcmp) --5316-- REDIR: 0x4019c40 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c30950 (mempcpy) --5316-- Reading syms from /usr/lib64/libzmq.so.5.1.1 --5316-- Considering /usr/lib/debug/.build-id/f0/e2faafbc50b68b398049de51f780da72043498.debug .. --5316-- .. build-id is valid --5316-- Warning: cross-CU LIMITATION: some inlined fn names --5316-- might be shown as UnknownInlinedFun --5316-- Reading syms from /usr/lib64/libczmq.so.4.0.3 --5316-- Considering /usr/lib/debug/.build-id/4a/e64f2e4364580a6bd260f46f2d56cc8f0e56cd.debug .. --5316-- .. build-id is valid --5316-- Reading syms from /usr/lib64/libc-2.17.so --5316-- Reading syms from /usr/lib64/libsodium.so.18.1.1 --5316-- object doesn't have a symbol table --5316-- Reading syms from /usr/lib64/librt-2.17.so --5316-- Reading syms from /usr/lib64/libpthread-2.17.so --5316-- Reading syms from /usr/lib64/libdl-2.17.so --5316-- Reading syms from /usr/lib64/libstdc++.so.6.0.19 --5316-- object doesn't have a symbol table --5316-- Reading syms from /usr/lib64/libm-2.17.so --5316-- Reading syms from /usr/lib64/libgcc_s-4.8.5-20150702.so.1 --5316-- object doesn't have a symbol table --5316-- REDIR: 0x53baac0 (libc.so.6:strcasecmp) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b6e70 (libc.so.6:strnlen) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53bcd90 (libc.so.6:strncasecmp) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b98d0 (libc.so.6:memset) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b9880 (libc.so.6:memcpy@GLIBC_2.2.5) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b6d40 (libc.so.6:strlen) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b5230 (libc.so.6:index) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b8820 (libc.so.6:rindex) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x543b2b0 (libc.so.6:__memcpy_chk) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53bf460 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b52f0 (libc.so.6:strcmp) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x53b6d90 (libc.so.6:__GI_strlen) redirected to 0x4c2cbc0 (__GI_strlen) --5316-- REDIR: 0x53b8860 (libc.so.6:__GI_strrchr) redirected to 0x4c2c520 (__GI_strrchr) --5316-- REDIR: 0x53c0d40 (libc.so.6:strchrnul) redirected to 0x4c30470 (strchrnul) --5316-- REDIR: 0x53ba470 (libc.so.6:__GI_mempcpy) redirected to 0x4c30680 (__GI_mempcpy) --5316-- REDIR: 0x53b0620 (libc.so.6:free) redirected to 0x4c2ac90 (free) 1242950770.815225638 > Starting server on ipc://@libzmq_memleak_test_server; processing_time 1000ms --5316-- REDIR: 0x53b0c10 (libc.so.6:calloc) redirected to 0x4c2b8de (calloc) --5316-- REDIR: 0xffffffffff600400 (???:???) redirected to 0x38075e6d (???) --5316-- REDIR: 0x5fdf140 (libstdc++.so.6:operator new(unsigned long, std::nothrow_t const&)) redirected to 0x4c2a333 (operator new(unsigned long, std::nothrow_t const&)) --5316-- REDIR: 0x53b27c0 (libc.so.6:posix_memalign) redirected to 0x4c2bdc9 (posix_memalign) --5316-- REDIR: 0x53b0220 (libc.so.6:malloc) redirected to 0x4c29b76 (malloc) --5316-- REDIR: 0x53bf4b0 (libc.so.6:__GI_memcpy) redirected to 0x4c2e750 (__GI_memcpy) --5316-- REDIR: 0x5fdf0b0 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c2a07e (operator new(unsigned long)) --5316-- REDIR: 0x547dd10 (libc.so.6:__memmove_ssse3_back) redirected to 0x4c2df10 (memcpy@GLIBC_2.2.5) --5316-- REDIR: 0x5fdd230 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c2b0aa (operator delete(void*)) --5316-- REDIR: 0x5462a10 (libc.so.6:__strchr_sse42) redirected to 0x4c2c710 (index) --5316-- REDIR: 0x54933b0 (libc.so.6:__strlen_sse2_pminub) redirected to 0x4c2cba0 (strlen) --5316-- REDIR: 0x5478770 (libc.so.6:__memcpy_ssse3_back) redirected to 0x4c2e170 (memcpy@@GLIBC_2.14) --5316-- REDIR: 0x53b92b0 (libc.so.6:bcmp) redirected to 0x4a24716 (_vgnU_ifunc_wrapper) --5316-- REDIR: 0x548dce0 (libc.so.6:__memcmp_sse4_1) redirected to 0x4c2f6c0 (__memcmp_sse4_1) --5316-- REDIR: 0x543b720 (libc.so.6:__strcpy_chk) redirected to 0x4c304f0 (__strcpy_chk) --5316-- REDIR: 0x53b92f0 (libc.so.6:__GI_memcmp) redirected to 0x4c2f640 (__GI_memcmp) --5316-- REDIR: 0x5462ac0 (libc.so.6:__strcmp_sse42) redirected to 0x4c2dd60 (__strcmp_sse42) --5316-- REDIR: 0x53c4b90 (libc.so.6:__GI_strncpy) redirected to 0x4c2cf90 (__GI_strncpy) --5316-- REDIR: 0x53b9910 (libc.so.6:__GI_memset) redirected to 0x4c2fe10 (memset) 1242950775.776620264 > [msg=1] Got request! Sleeping for 1000ms 1242950776.778200888 > [msg=1] Sending response ... ^C1242950778.684661703 > Closing server socket ... 1242950778.688904332 > -> done ==5316== ==5316== HEAP SUMMARY: ==5316== in use at exit: 481 bytes in 12 blocks ==5316== total heap usage: 114 allocs, 102 frees, 97,614 bytes allocated ==5316== ==5316== Searching for pointers to 12 not-freed blocks ==5316== Checked 244,864 bytes ==5316== ==5316== 27 bytes in 1 blocks are indirectly lost in loss record 1 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E46E50: char* std::string::_S_construct(char*, char*, std::allocator const&, std::forward_iterator_tag) (basic_string.tcc:138) ==5316== by 0x4E87CAD: _S_construct_aux (basic_string.h:1725) ==5316== by 0x4E87CAD: _S_construct (basic_string.h:1746) ==5316== by 0x4E87CAD: basic_string (basic_string.tcc:229) ==5316== by 0x4E87CAD: str (sstream:133) ==5316== by 0x4E87CAD: str (sstream:472) ==5316== by 0x4E87CAD: zmq::stream_engine_t::init_properties(std::map, std::allocator > >&) (stream_engine.cpp:1011) ==5316== by 0x4E884EB: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:862) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 28 bytes in 1 blocks are indirectly lost in loss record 2 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F520: char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_iterator_tag) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F5DC: std::basic_string, std::allocator >::basic_string(char const*, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E61BD4: zmq::mechanism_t::parse_metadata(unsigned char const*, unsigned long, bool) (mechanism.cpp:152) ==5316== by 0x4E65741: process_ready_command (null_mechanism.cpp:168) ==5316== by 0x4E65741: zmq::null_mechanism_t::process_handshake_command(zmq::msg_t*) (null_mechanism.cpp:144) ==5316== by 0x4E887A2: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:805) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 29 bytes in 1 blocks are indirectly lost in loss record 3 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F520: char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_iterator_tag) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F957: std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E88A57: pair, void> (stl_pair.h:152) ==5316== by 0x4E88A57: _Rb_tree_node, std::allocator > > > (stl_tree.h:140) ==5316== by 0x4E88A57: construct, std::basic_string > >, std::pair, std::allocator > > > (new_allocator.h:120) ==5316== by 0x4E88A57: _S_construct, std::basic_string > >, std::pair, std::allocator > > > (alloc_traits.h:254) ==5316== by 0x4E88A57: construct, std::basic_string > >, std::pair, std::allocator > > > (alloc_traits.h:393) ==5316== by 0x4E88A57: _M_create_node, std::allocator > > > (stl_tree.h:406) ==5316== by 0x4E88A57: std::_Rb_tree_iterator > std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_ >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair&&) (stl_tree.h:1023) ==5316== by 0x4E88C02: std::pair >, bool> std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique >(std::pair&&) (stl_tree.h:1382) ==5316== by 0x4E87BC9: insert >, void> (stl_map.h:603) ==5316== by 0x4E87BC9: zmq::stream_engine_t::init_properties(std::map, std::allocator > >&) (stream_engine.cpp:1012) ==5316== by 0x4E884EB: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:862) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== ==5316== 37 bytes in 1 blocks are indirectly lost in loss record 4 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F520: char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_iterator_tag) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F957: std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E88A57: pair, void> (stl_pair.h:152) ==5316== by 0x4E88A57: _Rb_tree_node, std::allocator > > > (stl_tree.h:140) ==5316== by 0x4E88A57: construct, std::basic_string > >, std::pair, std::allocator > > > (new_allocator.h:120) ==5316== by 0x4E88A57: _S_construct, std::basic_string > >, std::pair, std::allocator > > > (alloc_traits.h:254) ==5316== by 0x4E88A57: construct, std::basic_string > >, std::pair, std::allocator > > > (alloc_traits.h:393) ==5316== by 0x4E88A57: _M_create_node, std::allocator > > > (stl_tree.h:406) ==5316== by 0x4E88A57: std::_Rb_tree_iterator > std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_ >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair&&) (stl_tree.h:1023) ==5316== by 0x4E88C02: std::pair >, bool> std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique >(std::pair&&) (stl_tree.h:1382) ==5316== by 0x4E879CE: insert >, void> (stl_map.h:603) ==5316== by 0x4E879CE: zmq::stream_engine_t::init_properties(std::map, std::allocator > >&) (stream_engine.cpp:1006) ==5316== by 0x4E884EB: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:862) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== ==5316== 43 bytes in 1 blocks are indirectly lost in loss record 5 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603E8AA: std::string::_Rep::_M_clone(std::allocator const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603E953: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603EA17: std::string::append(std::string const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E87515: operator+= (basic_string.h:933) ==5316== by 0x4E87515: zmq::stream_engine_t::stream_engine_t(int, zmq::options_t const&, std::string const&) (stream_engine.cpp:115) ==5316== by 0x4E5E07A: zmq::ipc_listener_t::in_event() (ipc_listener.cpp:175) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 48 bytes in 1 blocks are indirectly lost in loss record 6 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x4E6292E: allocate (new_allocator.h:104) ==5316== by 0x4E6292E: _M_get_node (stl_tree.h:370) ==5316== by 0x4E6292E: _M_create_node, std::allocator >, std::basic_string, std::allocator > >&> (stl_tree.h:403) ==5316== by 0x4E6292E: _M_clone_node (stl_tree.h:429) ==5316== by 0x4E6292E: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1087) ==5316== by 0x4E628B7: _Rb_tree (stl_tree.h:659) ==5316== by 0x4E628B7: map (stl_map.h:181) ==5316== by 0x4E628B7: zmq::metadata_t::metadata_t(std::map, std::allocator > > const&) (metadata.cpp:35) ==5316== by 0x4E88553: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:874) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 48 bytes in 1 blocks are indirectly lost in loss record 7 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x4E6292E: allocate (new_allocator.h:104) ==5316== by 0x4E6292E: _M_get_node (stl_tree.h:370) ==5316== by 0x4E6292E: _M_create_node, std::allocator >, std::basic_string, std::allocator > >&> (stl_tree.h:403) ==5316== by 0x4E6292E: _M_clone_node (stl_tree.h:429) ==5316== by 0x4E6292E: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1087) ==5316== by 0x4E6299B: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1093) ==5316== by 0x4E628B7: _Rb_tree (stl_tree.h:659) ==5316== by 0x4E628B7: map (stl_map.h:181) ==5316== by 0x4E628B7: zmq::metadata_t::metadata_t(std::map, std::allocator > > const&) (metadata.cpp:35) ==5316== by 0x4E88553: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:874) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 48 bytes in 1 blocks are indirectly lost in loss record 8 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x4E629C4: allocate (new_allocator.h:104) ==5316== by 0x4E629C4: _M_get_node (stl_tree.h:370) ==5316== by 0x4E629C4: _M_create_node, std::allocator >, std::basic_string, std::allocator > >&> (stl_tree.h:403) ==5316== by 0x4E629C4: _M_clone_node (stl_tree.h:429) ==5316== by 0x4E629C4: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1099) ==5316== by 0x4E6299B: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1093) ==5316== by 0x4E628B7: _Rb_tree (stl_tree.h:659) ==5316== by 0x4E628B7: map (stl_map.h:181) ==5316== by 0x4E628B7: zmq::metadata_t::metadata_t(std::map, std::allocator > > const&) (metadata.cpp:35) ==5316== by 0x4E88553: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:874) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 48 bytes in 1 blocks are indirectly lost in loss record 9 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x4E629C4: allocate (new_allocator.h:104) ==5316== by 0x4E629C4: _M_get_node (stl_tree.h:370) ==5316== by 0x4E629C4: _M_create_node, std::allocator >, std::basic_string, std::allocator > >&> (stl_tree.h:403) ==5316== by 0x4E629C4: _M_clone_node (stl_tree.h:429) ==5316== by 0x4E629C4: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_copy(std::_Rb_tree_node > const*, std::_Rb_tree_node >*) (stl_tree.h:1099) ==5316== by 0x4E628B7: _Rb_tree (stl_tree.h:659) ==5316== by 0x4E628B7: map (stl_map.h:181) ==5316== by 0x4E628B7: zmq::metadata_t::metadata_t(std::map, std::allocator > > const&) (metadata.cpp:35) ==5316== by 0x4E88553: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:874) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 69 bytes in 2 blocks are indirectly lost in loss record 10 of 11 ==5316== at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x603DC68: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F520: char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_iterator_tag) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x603F5DC: std::basic_string, std::allocator >::basic_string(char const*, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.19) ==5316== by 0x4E61AD0: zmq::mechanism_t::parse_metadata(unsigned char const*, unsigned long, bool) (mechanism.cpp:114) ==5316== by 0x4E65741: process_ready_command (null_mechanism.cpp:168) ==5316== by 0x4E65741: zmq::null_mechanism_t::process_handshake_command(zmq::msg_t*) (null_mechanism.cpp:144) ==5316== by 0x4E887A2: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:805) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== 481 (56 direct, 425 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 11 ==5316== at 0x4C2A3BA: operator new(unsigned long, std::nothrow_t const&) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5316== by 0x4E88540: zmq::stream_engine_t::mechanism_ready() (stream_engine.cpp:874) ==5316== by 0x4E887FF: zmq::stream_engine_t::process_handshake_command(zmq::msg_t*) (stream_engine.cpp:808) ==5316== by 0x4E85A8D: zmq::stream_engine_t::in_event() (stream_engine.cpp:350) ==5316== by 0x4E5A31D: zmq::epoll_t::loop() (epoll.cpp:188) ==5316== by 0x4E8DE6B: thread_routine (thread.cpp:100) ==5316== by 0x5B67DC4: start_thread (in /usr/lib64/libpthread-2.17.so) ==5316== by 0x5426CEC: clone (in /usr/lib64/libc-2.17.so) ==5316== ==5316== LEAK SUMMARY: ==5316== definitely lost: 56 bytes in 1 blocks ==5316== indirectly lost: 425 bytes in 11 blocks ==5316== possibly lost: 0 bytes in 0 blocks ==5316== still reachable: 0 bytes in 0 blocks ==5316== suppressed: 0 bytes in 0 blocks ==5316== ==5316== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 1 from 1) --5316-- --5316-- used_suppression: 1 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a /usr/lib64/valgrind/default.supp:1296 ==5316== ==5316== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 1 from 1) ----- client on other shell: [root@test ~]# python /tmp/client.py 1242950775.657 > Connecting to ipc://@libzmq_memleak_test_server ... 1242950775.657 > Sending message ... 1242950775.658 > Awaiting for response for 500 ms 1242950776.158 > Timeout! 1242950776.159 > Closing socket ... 1242950776.159 > All done