activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From diedie <yuchunc...@gvdigital.com>
Subject Re: Handle leaks using CMS-3.1
Date Wed, 20 Jan 2010 02:27:38 GMT

Hi, 

Thank you for your reply.

I do initialize and shutdown the library.
Here is the complete code.

int main(int argc AMQCPP_UNUSED, char* argv[] AMQCPP_UNUSED) {

    activemq::library::ActiveMQCPP::initializeLibrary();

    std::cout << "=====================================================\n";
    std::cout << "Starting the example:" << std::endl;
    std::cout << "-----------------------------------------------------\n";

	while(true){
		ConnectionFactory* connectionFactory(
			ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616" )
);

		Connection* connection = connectionFactory->createConnection();
		connection->start();
		connection->close();
		delete connection;
		connection = NULL;
		delete connectionFactory;
		connectionFactory = NULL;
		Sleep(2000);
	}

    activemq::library::ActiveMQCPP::shutdownLibrary();
}

Regards,
diedie



Timothy Bish wrote:
> 
> On Fri, 2010-01-15 at 00:32 -0800, diedie wrote:
>> Hi,
>> 
>> I recently upgraded my cms library from 3.0 to 3.1(built using vs-2005), 
>> and face some issues that handle leaks when reconnecting to server.
>> 
>> So I wrote a simple testing program based on vs2005-activemq-example, 
>> and found that it occurs even I just create the connection and close it.
>> Has any one encountered this before?
>> Or is there anything I should notice but missed?
>> 
>> Any reply is appreciated.
>> 
>> 
>> Here is the code I wrote for testing.
>> ==============================
>> 	while(true){
>> 		ConnectionFactory* connectionFactory(
>> 			ConnectionFactory::createCMSConnectionFactory( "tcp://127.0.0.1:61616"
>> )
>> );
>> 
>> 		Connection* connection = connectionFactory->createConnection();
>> 		connection->start();
>> 		connection->close();
>> 		delete connection;
>> 		connection = NULL;
>> 		delete connectionFactory;
>> 		connectionFactory = NULL;
>> 		Sleep(2000);
>> 	}
>> =============================
>> 
>> And following are the reports generated using DebugDiag.
>> It's strange that it leaks in different when I using different linking
>> method.
>> 
>> Static Linking case :
>> Function   msvcr80d!_beginthreadex+fd 
>> Allocation type   Thread handle(s) 
>> Handle Count   816 handle(s) 
>> Leak Probability   100% 
>> 
>> Call stack sample 1
> 
> So far I have not found any leaks.  Did your complete application
> include code to initialize and shutdown the ActiveMQ-CPP library, its
> not included in the snippet.  
> 
> Regards
> Tim.
> 
>> 
>> Handle   0x00001448 Allocation Time   00:05:26 since tracking started 
>> Function   Source   Destination 
>> msvcr80d!_beginthreadex+fd  
>> f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 206  
>> kernel32!CreateThread 
>> vs2005_activemq_example!decaf::lang::Thread::start+13b  
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\decaf\lang\thread.cpp
>> @ 378   msvcr80d!_beginthreadex 
>> msvcr80d!_free_dbg+5d   f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
>> @
>> 1222    
>> msvcr80d!operator delete+c6  
>> f:\dd\vctools\crt_bld\self_x86\crt\src\dbgdel.cpp @ 56    
>> vs2005_activemq_example!activemq::transport::IOTransport::start+1de  
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\iotransport.cpp
>> @ 166    
>> vs2005_activemq_example!activemq::transport::TransportFilter::start+53  
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\transportfilter.cpp
>> @ 90    
>> vs2005_activemq_example!activemq::transport::correlator::ResponseCorrelator::start+113
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\correlator\responsecorrelator.cpp
>> @ 243    
>> vs2005_activemq_example!activemq::core::ActiveMQConnection::ActiveMQConnection+21b
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnection.cpp
>> @ 80    
>> vs2005_activemq_example!activemq::core::ActiveMQConnectionFactory::createConnection+39c
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnectionfactory.cpp
>> @ 143    
>> vs2005_activemq_example!main+14a  
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\examples\main.cpp @
>> 397    
>> vs2005_activemq_example!mainCRTStartup+d  
>> f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 414    
>> kernel32!BaseProcessStart+23 
>> 
>> Dynamic Linking case :
>> Function  
>> libactivemq_cpp_31_vc80_mt_d!decaf::internal::util::concurrent::ConditionImpl::create+a5

>> Allocation type   Semaphore handle(s) 
>> Handle Count   2730 handle(s) 
>> Leak Probability   100% 
>> 
>> Call stack sample 1
>> 
>> Handle   0x00000784 
>> Allocation Time   00:05:06 since tracking started 
>> Function   Source   Destination 
>> libactivemq_cpp_31_vc80_mt_d!decaf::internal::util::concurrent::ConditionImpl::create+a5
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\decaf\internal\util\concurrent\windows\conditionimpl.cpp
>> @ 47   kernel32!CreateSemaphoreA 
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransport::initialize+452
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransport.cpp
>> @ 129    
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransportFactory::doCreateComposite+12d
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransportfactory.cpp
>> @ 99    
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransportFactory::create+c1
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransportfactory.cpp
>> @ 53    
>> libactivemq_cpp_31_vc80_mt_d!activemq::core::ActiveMQConnectionFactory::createConnection+2df
 
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnectionfactory.cpp
>> @ 133    
>> vs2005_activemq_example!main+168  
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\examples\main.cpp @
>> 397    
>> vs2005_activemq_example!mainCRTStartup+d  
>> f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 414    
>> kernel32!BaseProcessStart+23 
>> 
> 
> -- 
> Tim Bish
> http://fusesource.com
> http://timbish.blogspot.com/
> 
> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Handle-leaks-using-CMS-3.1-tp27173352p27235982.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message