activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Teemu Torma (JIRA)" <>
Subject [jira] [Commented] (AMQCPP-361) Destroying a consumer may cause a crash
Date Thu, 14 Apr 2011 13:08:05 GMT


Teemu Torma commented on AMQCPP-361:

As far as I can see you will need to close the session before destroying any consumers using

In my usage case, we are using one session and creating consumer to retrieve one message from
a topic before closing and throwing the consumer away.  Creating a new session for each consumer
is just heavier operation and we were trying to avoid that.

> Destroying a consumer may cause a crash
> ---------------------------------------
>                 Key: AMQCPP-361
>                 URL:
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: CMS Impl
>    Affects Versions: 3.2.5
>         Environment: all
>            Reporter: Teemu Torma
>            Assignee: Timothy Bish
> ActiveMQSessionExecutor::dispatch gets a consumer and calls consumer's dispatch method
without holding any locks in between.  This leaves a window when a consumer can be no longer
valid on a dispatch call causing a crash.
> Since this is a timing issue it is hard to demonstrate as such.  If one adds let's say
one second sleep in ActiveMQSessionExecutor::dispatch before the call to the consumer->dispatch,
and destroys a consumer on a destination which has messages incoming will likely crash the

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message