[
https://issues.apache.org/jira/browse/AMQCPP-361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13019816#comment-13019816
]
Teemu Torma commented on AMQCPP-361:
------------------------------------
As far as I can see you will need to close the session before destroying any
consumers using it.
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: https://issues.apache.org/jira/browse/AMQCPP-361
> 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 application.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira