[ 
https://issues.apache.org/activemq/browse/AMQCPP-277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish resolved AMQCPP-277.
---------------------------------

    Resolution: Fixed

Marking as resolved since there's been no feedback on whether its still an 
issue,

> Freeze when creating multiple Consumers
> ---------------------------------------
>
>                 Key: AMQCPP-277
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-277
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 3.1
>         Environment: Windows 7 x64, ActiveMQ Server 5.3, Java 6.0.17, Visual 
> Studio 2008 SP1, Windows 7 SDK, APR 1.3.9
>            Reporter: Eddie Fast
>            Assignee: Timothy Bish
>             Fix For: 3.2.0
>
>
> We create multiple MessageConsumers with different selectors.  This can be 
> upwards of 50 or so consumers per client.
> We recently upgraded to 3.1 from 2.2.2.    We also upgraded our ActiveMQ 
> Server to 5.3 from 5.2.
> After upgrading, we've been seeing random, but frequent freezing in our 
> clients.  I've narrowed it down to where it creates the MessageConsumer and 
> calls setMessageListener();
> It seems to be stuck, waiting for a thread to join.
> I've modified the main.cpp to exhibit this behavior, but I've only been able 
> to reproduce it randomly.   It seems to happen more frequently if you stick a 
> breakpoint on this line in Thread.cpp,  Thread::join():
> Thread::join( INFINITE, 0 );
> Here's the callstack where it freezes, which is consistent in our clients as 
> well as the main.cpp example:
>       ntdll.dll!76fff871()    
>       [Frames below may be incorrect and/or missing, no symbols loaded for 
> ntdll.dll] 
>       ntdll.dll!76fff871()    
>       KernelBase.dll!75e20816()       
>       kernel32.dll!755b1138()         
>       
> activemq-cppd.dll!decaf::internal::util::concurrent::ConditionImpl::wait(decaf::util::concurrent::ConditionHandle
>  * condition=0x0239e0e0, __int64 mills=4294967295, __int64 nanos=0)  Line 110 
> + 0x10 bytes     C++
>       activemq-cppd.dll!decaf::util::concurrent::Mutex::wait(__int64 
> millisecs=4294967295, int nanos=0)  Line 124 + 0x20 bytes        C++
>       activemq-cppd.dll!decaf::lang::Thread::join(__int64 
> millisecs=4294967295, unsigned int nanos=0)  Line 464 + 0x36 bytes  C++
>       activemq-cppd.dll!decaf::lang::Thread::join()  Line 421 C++
> >     activemq-cppd.dll!activemq::threads::DedicatedTaskRunner::shutdown()  
> > Line 83   C++
>       activemq-cppd.dll!activemq::core::ActiveMQSessionExecutor::stop()  Line 
> 110     C++
>       activemq-cppd.dll!activemq::core::ActiveMQSession::stop()  Line 807     
> C++
>       
> activemq-cppd.dll!activemq::core::ActiveMQConsumer::setMessageListener(cms::MessageListener
>  * listener=0x0018fe0c)  Line 523    C++
>       vs2005-activemq-example.exe!HelloWorldConsumer::run()  Line 247 + 0x5b 
> bytes    C++
>       
> activemq-cppd.dll!decaf::lang::ThreadProperties::runCallback(decaf::lang::ThreadProperties
>  * properties=0x01df7f68)  Line 133 + 0x11 bytes      C++
>       activemq-cppd.dll!`anonymous namespace'::threadWorker(void * 
> arg=0x01df7f68)  Line 204 + 0x9 bytes      C++
>       msvcr90d.dll!_callthreadstartex()  Line 348 + 0xf bytes C
>       msvcr90d.dll!_threadstartex(void * ptd=0x01dfafd8)  Line 331    C
> To modify main.cpp, it's pretty simple.  Instead of creating 1 
> MessageConsumer in HelloWorldConsumer::run(), I've created 50:
> {quote}
> // put this line with the class variables
> std::vector<MessageConsumer*> consumers;
> for ( int i = 0; i < 50; i++ )
> {{
>          // Create a MessageConsumer from the Session to the Topic or Queue
>          consumers.push_back( session->createConsumer( destination ) );
>          consumers.back()->setMessageListener( this );
> }}
> {quote}
> I'm using the standard .conf for the server.    I've reverted to 2.2.2 and 
> have no issues.
> Any ideas?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to