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

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 

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

Reply via email to