activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Helen Huang (JIRA)" <>
Subject [jira] Commented: (AMQCPP-328) crash found in activemqcpp when turning broker offline
Date Wed, 08 Dec 2010 21:05:01 GMT


Helen Huang commented on AMQCPP-328:

We are moving closer to our release date and  I am wondering if there is any progress on this
jira. Thanks!

We could use the failover protocal if it can exit cleanly. In the following code, m_asyncReceiverThread
is a thread that calls cmsTemplate::receive(), and it uses the failover transport.  When we
exit the program, we call m_asyncReceiverThread->join();

		delete m_asyncReceiverThread;

But if the borker is down, then m_asyncReceiverThread->join(); waits forever... I changed
it to m_asyncReceiverThread->join(2000); This time we found the receiver thread is able
to exit, but it does not release the resources it holds...

Do you have any good suggestions on how to terminate that thread? I was searching for a "interrupt()"
function in the Thread class but could not find it.  If we had that function, then we can
try to catch the interrupted exception and release the resource. 

> crash found in activemqcpp when turning broker offline
> ------------------------------------------------------
>                 Key: AMQCPP-328
>                 URL:
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: CMS Impl
>    Affects Versions: 3.2.3
>         Environment: Windows xp service pack 3, ActiveMQ broker 5.3.1, apr 1.4.2, apr-util
1.3.9, apr iconv 1.2.1
>            Reporter: Helen Huang
>            Assignee: Timothy Bish
>             Fix For: 3.2.4
>         Attachments:, screenshot-1.jpg, test
> We found a crash in activemqcpp when we are shutting down the message broker.  In the
meanwhile, our application is still trying to send messages to the broker, and to receive
messages from it. Could you please take a look at this problem? Much thanks for your help!

> The place of the crash appears to be in TransportFilter::Fire(Exception&) on line
49. The content of the address that the listener pointer is pointing to seems to be corrupted/garbage.
Please see the call stack in the attached screen shot for details. 
> Attached please also find a test program to reproduce the problem. Step to run the test
> (1) download and unzip test program
> (2) register GTOUD.dll
> (3) register CmsMessageHandlerCOMUD.dll
> (4) run CmsMessageHandlerCOMTest.exe
> (5) repeatedly restart activemqcpp broker. 
> (6) observe the crash

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

View raw message