Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 33442 invoked from network); 16 Mar 2010 18:40:22 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Mar 2010 18:40:22 -0000 Received: (qmail 53765 invoked by uid 500); 16 Mar 2010 18:40:22 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 53743 invoked by uid 500); 16 Mar 2010 18:40:22 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 53735 invoked by uid 99); 16 Mar 2010 18:40:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Mar 2010 18:40:22 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,SPF_HELO_PASS,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Mar 2010 18:40:18 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1NrbgL-0005JX-4Q for users@activemq.apache.org; Tue, 16 Mar 2010 11:39:57 -0700 Message-ID: <27922715.post@talk.nabble.com> Date: Tue, 16 Mar 2010 11:39:57 -0700 (PDT) From: ironrooster To: users@activemq.apache.org Subject: Re: ActiveMQ-CPP: memory leak with persistent sendings? In-Reply-To: <1268365497.2637.2.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: greenspan@lowell.edu References: <27716173.post@talk.nabble.com> <1267183624.2388.0.camel@localhost> <27717254.post@talk.nabble.com> <1267192786.2388.4.camel@localhost> <27719456.post@talk.nabble.com> <1267197528.2388.5.camel@localhost> <27872774.post@talk.nabble.com> <1268365497.2637.2.camel@localhost> Tim, Thanks for responding so quickly! You are correct, there is some complex issue that apparently has nothing to do with AMQ. I won't belabor the point since the problem is now solved - or at least underground - but FYI we are using AMQ in a DLL called from LabVIEW. I think that there was a problem with the LabVIEW system. Thanks again for your quick response. Timothy Bish wrote: > > 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::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/ > > > -- View this message in context: http://old.nabble.com/ActiveMQ-CPP%3A-memory-leak-with-persistent-sendings--tp27716173p27922715.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.