You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Dany LECOQ (Jira)" <ji...@apache.org> on 2019/09/29 14:24:00 UTC
[jira] [Updated] (AMQ-7312) virtualSelectorCacheBrokerPlugin fails
on "browse" action
[ https://issues.apache.org/jira/browse/AMQ-7312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dany LECOQ updated AMQ-7312:
----------------------------
Description:
We have a VirtualTopic "VirtualTopic.multi_dest" and 2 consumers :
* Consumer.alpha.VirtualTopic.multi_dest
* Consumer.beta.VirtualTopic.multi_dest
Message producer send messages on that vTopic with various "tenant" header value.
Each consumer use a selector to receive only desired data :
* tenant='alpha' for Consumer.alpha.VirtualTopic.multi_dest
* tenant='beta' for Consumer.alpha.VirtualTopic.multi_dest
To avoid to get many pending message on each consumer queue, we activated selectorAware="true" in broker settings.
To avoid to lose message on temporary consumer deconnection, we activated virtualSelectorCacheBrokerPlugin plugin.
Steps to reproduce bug :
* launch message producer and both message consumers alpha and beta
* stop alpha consumer
* notice on console pending messages on alpha queue increase
* if we restart alpha consumer, all pending messages are consumed => ok, only messages matching selector were in queue
* restop alpha consumer
* go on console and click on "Browse" link for alpha consumer queue
* restart alpha consumer => it will consume pending messages matching selector
* notice there are other waiting messages that do not match selector, so the consumer queue is fastly full of useless messages => ko
* even after broker restart, the alpha consumer queue continues to receive message that do not match selectors => ko
After code analysis, I notice "Browse" action create a new consumer on queue. In virtualSelectorCacheBrokerPlugin, the addConsumer method update "subSelectorCache" variable with 'TRUE' selector.
A pull request is submitted to fix that issue (https://github.com/apache/activemq/pull/395), could you merge it for the next patch 5.15.11 ?
was:
We have a VirtualTopic "VirtualTopic.multi_dest" and 2 consumers :
* Consumer.alpha.VirtualTopic.multi_dest
* Consumer.beta.VirtualTopic.multi_dest
Message producer send messages on that vTopic with various "tenant" header value.
Each consumer use a selector to receive only desired data :
* tenant='alpha' for Consumer.alpha.VirtualTopic.multi_dest
* tenant='beta' for Consumer.alpha.VirtualTopic.multi_dest
To avoid to get many pending message on each consumer queue, we activated selectorAware="true" in broker settings.
To avoid to lose message on temporary consumer deconnection, we activated virtualSelectorCacheBrokerPlugin plugin.
Steps to reproduce bug :
* launch message producer and both message consumers alpha and beta
* stop alpha consumer
* notice on console pending messages on alpha queue increase
* if we restart alpha consumer, all pending messages are consumed => ok, only messages matching selector were in queue
* restop alpha consumer
* go on console and click on "Browse" link for alpha consumer queue
* restart alpha consumer => it will consume pending messages matching selector
* notice there are other waiting messages that do not match selector, so the consumer queue is fastly full of useless messages => ko
* even after broker restart, the alpha consumer queue continues to receive message that do not match selectors => ko
After code analysis, I notice "Browse" action create a new consumer on queue. In virtualSelectorCacheBrokerPlugin, the addConsumer method update "subSelectorCache" variable with 'TRUE' selector.
A pull request will be submitted to fix that issue, could you merge it for the next patch 5.15.11 ?
> virtualSelectorCacheBrokerPlugin fails on "browse" action
> ---------------------------------------------------------
>
> Key: AMQ-7312
> URL: https://issues.apache.org/jira/browse/AMQ-7312
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.15.10
> Reporter: Dany LECOQ
> Priority: Critical
> Fix For: 5.15.11
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> We have a VirtualTopic "VirtualTopic.multi_dest" and 2 consumers :
> * Consumer.alpha.VirtualTopic.multi_dest
> * Consumer.beta.VirtualTopic.multi_dest
> Message producer send messages on that vTopic with various "tenant" header value.
> Each consumer use a selector to receive only desired data :
> * tenant='alpha' for Consumer.alpha.VirtualTopic.multi_dest
> * tenant='beta' for Consumer.alpha.VirtualTopic.multi_dest
> To avoid to get many pending message on each consumer queue, we activated selectorAware="true" in broker settings.
> To avoid to lose message on temporary consumer deconnection, we activated virtualSelectorCacheBrokerPlugin plugin.
> Steps to reproduce bug :
> * launch message producer and both message consumers alpha and beta
> * stop alpha consumer
> * notice on console pending messages on alpha queue increase
> * if we restart alpha consumer, all pending messages are consumed => ok, only messages matching selector were in queue
> * restop alpha consumer
> * go on console and click on "Browse" link for alpha consumer queue
> * restart alpha consumer => it will consume pending messages matching selector
> * notice there are other waiting messages that do not match selector, so the consumer queue is fastly full of useless messages => ko
> * even after broker restart, the alpha consumer queue continues to receive message that do not match selectors => ko
>
> After code analysis, I notice "Browse" action create a new consumer on queue. In virtualSelectorCacheBrokerPlugin, the addConsumer method update "subSelectorCache" variable with 'TRUE' selector.
>
> A pull request is submitted to fix that issue (https://github.com/apache/activemq/pull/395), could you merge it for the next patch 5.15.11 ?
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)