Re: MySQL 8.0: Connector/C++ - 8.0.17 - leak?
I have an update on this!
After I have initialized the Session with "SessionOption::SSL_MODE, SSLMode::DISABLED" and
compiled with -g flag I see more detailed information in the report:
...
...
==24039== Searching for pointers to 2 not-freed blocks
==24039== Checked 220,904 bytes
==24039==
==24039== 64 bytes in 1 blocks are still reachable in loss record 1 of 2
==24039== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==24039== by 0x4AE4E34: google::protobuf::internal::ShutdownData::get() (common.cc:347)
==24039== by 0x4AE48EE: google::protobuf::internal::OnShutdownRun(void (*)(void const*), void const*) (common.cc:364)
==24039== by 0x4AA630E: google::protobuf::internal::OnShutdownDestroyString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*) (generated_message_util.h:384)
==24039== by 0x4AEB242: google::protobuf::internal::InitProtobufDefaultsImpl() (generated_message_util.cc:76)
==24039== by 0x4AEB280: google::protobuf::internal::InitProtobufDefaults() (generated_message_util.cc:81)
==24039== by 0x4AEE220: google::protobuf::internal::InitSCCImpl(google::protobuf::internal::SCCInfoBase*) (generated_message_util.cc:804)
==24039== by 0x4A48D97: google::protobuf::internal::InitSCC(google::protobuf::internal::SCCInfoBase*) (generated_message_util.h:373)
==24039== by 0x4A93D19: Mysqlx::Prepare::Execute::Execute() (mysqlx_prepare.pb.cc:877)
==24039== by 0x4A25F87: cdk::protocol::mysqlx::Protocol_impl::Protocol_impl(cdk::protocol::mysqlx::Protocol::Stream*, cdk::protocol::mysqlx::Protocol_side) (protocol.cc:144)
==24039== by 0x4A2AF29: cdk::protocol::mysqlx::Protocol::Impl::Impl(cdk::protocol::mysqlx::Protocol::Stream*) (protocol.h:335)
==24039== by 0x4A2B8FA: cdk::foundation::opaque_impl<cdk::protocol::mysqlx::Protocol>::opaque_impl<cdk::protocol::mysqlx::Protocol::Stream*>(void*, cdk::protocol::mysqlx::Protocol::Stream*) (opa
==24039==
==24039== 1,024 bytes in 1 blocks are still reachable in loss record 2 of 2
==24039== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==24039== by 0x4AE5D39: __gnu_cxx::new_allocator<std::pair<void (*)(void const*), void const*> >::allocate(unsigned long, void const*) (new_allocator.h:111)
==24039== by 0x4AE5BA8: std::allocator_traits<std::allocator<std::pair<void (*)(void const*), void const*> > >::allocate(std::allocator<std::pair<void (*)(void const*), void const*> >&, unsigned
==24039== by 0x4AE5A45: std::_Vector_base<std::pair<void (*)(void const*), void const*>, std::allocator<std::pair<void (*)(void const*), void const*> > >::_M_allocate(unsigned long) (stl_vector.
==24039== by 0x4AE567D: void std::vector<std::pair<void (*)(void const*), void const*>, std::allocator<std::pair<void (*)(void const*), void const*> > >::_M_realloc_insert<std::pair<void (*)(voi
==24039== by 0x4AE53FD: void std::vector<std::pair<void (*)(void const*), void const*>, std::allocator<std::pair<void (*)(void const*), void const*> > >::emplace_back<std::pair<void (*)(void con
==24039== by 0x4AE514D: std::vector<std::pair<void (*)(void const*), void const*>, std::allocator<std::pair<void (*)(void const*), void const*> > >::push_back(std::pair<void (*)(void const*), vo
==24039== by 0x4AE4937: google::protobuf::internal::OnShutdownRun(void (*)(void const*), void const*) (common.cc:366)
==24039== by 0x4A48DBC: google::protobuf::internal::OnShutdownDestroyMessage(void const*) (generated_message_util.h:380)
==24039== by 0x4A4AA36: protobuf_mysqlx_5fcrud_2eproto::InitDefaultsLimit() (mysqlx_crud.pb.cc:168)
==24039== by 0x4AEE0CB: google::protobuf::internal::(anonymous namespace)::InitSCC_DFS(google::protobuf::internal::SCCInfoBase*) (generated_message_util.cc:780)
==24039== by 0x4AEE0BB: google::protobuf::internal::(anonymous namespace)::InitSCC_DFS(google::protobuf::internal::SCCInfoBase*) (generated_message_util.cc:778)
==24039==
==24039== LEAK SUMMARY:
==24039== definitely lost: 0 bytes in 0 blocks
==24039== indirectly lost: 0 bytes in 0 blocks
==24039== possibly lost: 0 bytes in 0 blocks
==24039== still reachable: 1,088 bytes in 2 blocks
==24039== suppressed: 0 bytes in 0 blocks
==24039==
==24039== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==24039== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
....
...
Do I have to call some function to release these things?