ChrisZhangJin commented on issue #430:
URL: 
https://github.com/apache/rocketmq-client-cpp/issues/430#issuecomment-1176984905

   the leak happens only when using CProducer while setting server with a 
domian not a IP;
   I also tried cpp class DefaultMQProducer, it's totally ok without it.
   
   it seems c-based interface has such leaks
   
   the code like this
   ` SetProducerNameServerAddress(producer, "some.domain.com:9876");` 
   
   found version:
   2.2.0
   
   here is the result from Valgrind
   
   > ==12866== 5,760 (960 direct, 4,800 indirect) bytes in 15 blocks are 
definitely lost in loss record 7 of 9
   ==12866==    at 0x4C29F73: malloc (vg_replace_malloc.c:309)
   ==12866==    by 0x6361E8A: gaih_inet.constprop.8 (in /usr/lib64/libc-2.17.so)
   ==12866==    by 0x63635F3: getaddrinfo (in /usr/lib64/libc-2.17.so)
   ==12866==    by 0x53C7B38: evutil_getaddrinfo (in /usr/lib64/librocketmq.so)
   ==12866==    by 0x5379357: rocketmq::TcpTransport::getInetAddr(std::string&) 
(TcpTransport.cpp:105)
   ==12866==    by 0x5379672: rocketmq::TcpTransport::connect(std::string 
const&, int) (TcpTransport.cpp:160)
   ==12866==    by 0x536ACEA: 
rocketmq::TcpRemotingClient::CreateTransport(std::string const&, bool) 
(TcpRemotingClient.cpp:339)
   ==12866==    by 0x536B068: 
rocketmq::TcpRemotingClient::CreateNameServerTransport(bool) 
(TcpRemotingClient.cpp:390)
   ==12866==    by 0x536A989: 
rocketmq::TcpRemotingClient::GetTransport(std::string const&, bool) 
(TcpRemotingClient.cpp:293)
   ==12866==    by 0x536A134: 
rocketmq::TcpRemotingClient::invokeSync(std::string const&, 
rocketmq::RemotingCommand&, int) (TcpRemotingClient.cpp:203)
   ==12866==    by 0x5243C2C: 
rocketmq::MQClientAPIImpl::getTopicRouteInfoFromNameServer(std::string const&, 
int, rocketmq::SessionCredentials const&) (MQClientAPIImpl.cpp:315)
   ==12866==    by 0x5257CA3: 
rocketmq::MQClientFactory::updateTopicRouteInfoFromNameServer(std::string 
const&, rocketmq::SessionCredentials const&, bool) (MQClientFactory.cpp:172)
   ==12866==
   ==12866== 7,296 (1,216 direct, 6,080 indirect) bytes in 19 blocks are 
definitely lost in loss record 9 of 9
   ==12866==    at 0x4C29F73: malloc (vg_replace_malloc.c:309)
   ==12866==    by 0x6361E8A: gaih_inet.constprop.8 (in /usr/lib64/libc-2.17.so)
   ==12866==    by 0x63635F3: getaddrinfo (in /usr/lib64/libc-2.17.so)
   ==12866==    by 0x53C7B38: evutil_getaddrinfo (in /usr/lib64/librocketmq.so)
   ==12866==    by 0x5379357: rocketmq::TcpTransport::getInetAddr(std::string&) 
(TcpTransport.cpp:105)
   ==12866==    by 0x5379672: rocketmq::TcpTransport::connect(std::string 
const&, int) (TcpTransport.cpp:160)
   ==12866==    by 0x536ACEA: 
rocketmq::TcpRemotingClient::CreateTransport(std::string const&, bool) 
(TcpRemotingClient.cpp:339)
   ==12866==    by 0x536B068: 
rocketmq::TcpRemotingClient::CreateNameServerTransport(bool) 
(TcpRemotingClient.cpp:390)
   ==12866==    by 0x536A989: 
rocketmq::TcpRemotingClient::GetTransport(std::string const&, bool) 
(TcpRemotingClient.cpp:293)
   ==12866==    by 0x536A134: 
rocketmq::TcpRemotingClient::invokeSync(std::string const&, 
rocketmq::RemotingCommand&, int) (TcpRemotingClient.cpp:203)
   ==12866==    by 0x5243C2C: 
rocketmq::MQClientAPIImpl::getTopicRouteInfoFromNameServer(std::string const&, 
int, rocketmq::SessionCredentials const&) (MQClientAPIImpl.cpp:315)
   ==12866==    by 0x5257DDA: 
rocketmq::MQClientFactory::updateTopicRouteInfoFromNameServer(std::string 
const&, rocketmq::SessionCredentials const&, bool) (MQClientFactory.cpp:184)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to