On Thu, 2010-03-11 at 18:44 -0800, ironrooster wrote: > Hi, > I'm having a similar issue: using activeme-cpp 3.1.1, there is a large > memory leak when sending text messages. Here's a code snippet: > > > > Here's the setup in my run method: > { > // Create a ConnectionFactory > auto_ptr<ConnectionFactory> connectionFactory( > ConnectionFactory::createCMSConnectionFactory( brokerURI ) ); > > // Create a Connection > connection = connectionFactory->createConnection(); > connection->start(); > > // Create a Session > session = connection->createSession( Session::AUTO_ACKNOWLEDGE ); > > // Create the destination > destination = session->createTopic( topicName ); > > // Create a MessageProducer from the Session to the Topic or Queue > producer = session->createProducer( destination ); > producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT ); > > // Wait until the caller tells us we're done. > doneLatch.await(); > } > > > > void Producer::sendMessage( const std::string& messageArg) > { > TextMessage* message = session->createTextMessage( messageArg ); > producer->setTimeToLive( 10000 ); > producer->send( message ); > delete message; > } // End of sendMessage() > > > If I comment out the producer->send() line, no leak. Any help would be > appreciated! Thanks. > >
If you can provide a *complete* example of your code that demonstrates the issue I'd be glad to look into it. The current samples and test have all been run through valgrind with no leaks reported so there must be something unique to your test case that's not been tested yet. Regards Tim. > > Timothy Bish wrote: > > > > On Fri, 2010-02-26 at 07:14 -0800, opernas wrote: > >> Version is 3.1.0 > >> > > Please give 3.1.1 a try as there were several fixes in that release for > > memory leaks. > > > > Regards > > > > > >> > >> Timothy Bish wrote: > >> > > >> > On Fri, 2010-02-26 at 03:45 -0800, opernas wrote: > >> >> > >> >> Like I said, this issue occurred with my app but in SimpleProducer.cpp > >> >> sample too. If you take SimpleProducer.cpp and put DeliverMode flag to > >> >> PERSISTENT (instead of NON_PERSISTENT). > >> >> > >> >> ==3085== 160 bytes in 20 blocks are definitely lost in loss record 27 > >> of > >> >> 40 > >> >> > >> >> ==3085== at 0x40253C5: operator new(unsigned int) > >> >> (vg_replace_malloc.c:214) > >> >> > >> >> > >> >> ==3085== by 0x4313A16: > >> >> activemq::core::ActiveMQSession::send(cms::Message*, > >> >> activemq::core::ActiveMQProducer*, activemq::util::Usage*) > >> (Pointer.h:45) > >> >> ==3085== by 0x430843E: > >> >> activemq::core::ActiveMQProducer::send(cms::Destination const*, > >> >> cms::Message*, int, int, long long) (ActiveMQProducer.cpp:197) > >> >> > >> >> ==3085== by 0x43065F6: > >> >> activemq::core::ActiveMQProducer::send(cms::Destination const*, > >> >> cms::Message*) (ActiveMQProducer.cpp:134) > >> >> > >> >> ==3085== by 0x43074FA: > >> >> activemq::core::ActiveMQProducer::send(cms::Message*) > >> >> (ActiveMQProducer.cpp:102) > >> >> > >> >> ==3085== by 0x8049F4D: SimpleProducer::run() (prueba.cpp:126) > >> >> > >> >> > >> >> ==3085== by 0x804928A: main (prueba.cpp:227) > >> >> > >> >> > >> >> ==3085== LEAK SUMMARY: > >> >> ==3085== definitely lost: 7,280 bytes in 40 blocks > >> >> ==3085== indirectly lost: 10,406 bytes in 468 blocks > >> >> ==3085== possibly lost: 784 bytes in 6 blocks > >> >> ==3085== still reachable: 28 bytes in 1 blocks > >> >> ==3085== suppressed: 0 bytes in 0 blocks > >> >> > >> >> Is in the producer->send() call... but I dont know if I've some > >> mistake, > >> >> or > >> >> if a put PERSISTENT, i need to do something else... i've tried > >> different > >> >> ackwnoledge methods, but i've still loosing memory. > >> >> > >> >> > >> > > >> > It would help to know the version of the client you are using. The > >> most > >> > recent 3.1.1 release has several memory and resource leak fixes in it. > >> > > >> > Regards > >> > > >> > > >> > -- > >> > Tim Bish > >> > > >> > Open Source Integration: http://fusesource.com > >> > ActiveMQ in Action: http://www.manning.com/snyder/ > >> > > >> > Follow me on Twitter: http://twitter.com/tabish121 > >> > My Blog: http://timbish.blogspot.com/ > >> > > >> > > >> > > >> > > > > -- > > Tim Bish > > > > Open Source Integration: http://fusesource.com > > ActiveMQ in Action: http://www.manning.com/snyder/ > > > > Follow me on Twitter: http://twitter.com/tabish121 > > My Blog: http://timbish.blogspot.com/ > > > > > > > -- Tim Bish Open Source Integration: http://fusesource.com ActiveMQ in Action: http://www.manning.com/snyder/ Follow me on Twitter: http://twitter.com/tabish121 My Blog: http://timbish.blogspot.com/