[ 
https://issues.apache.org/jira/browse/ARTEMIS-2156?focusedWorklogId=188201&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-188201
 ]

ASF GitHub Bot logged work on ARTEMIS-2156:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 22/Jan/19 14:17
            Start Date: 22/Jan/19 14:17
    Worklog Time Spent: 10m 
      Work Description: jbertram commented on issue #2510: [ARTEMIS-2156] 
Message Duplication when using exclusive divert and clustering
URL: https://github.com/apache/activemq-artemis/pull/2510#issuecomment-456414742
 
 
   Couple of house-keeping items:
   
   - Squash all the commits.
   - Don't put square brackets around the JIRA reference in the commit message.
   - You can trigger the PR build again by running `git commit --amend`. You 
don't have to actually change the commit at all. Just close the editor and git 
will re-apply the commit with a new ID. After than run `git push -f <repo> 
<branch>`.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 188201)
    Time Spent: 5h 50m  (was: 5h 40m)

> Message Duplication when using exclusive divert and clustering
> --------------------------------------------------------------
>
>                 Key: ARTEMIS-2156
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2156
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 1.5.5, 2.6.3
>            Reporter: Luis Miguel De Bello
>            Priority: Major
>         Attachments: ArtemisClient1.5.5.gif, ArtemisClient2.6.2.gif, 
> Consumer.java, ConsumerClient2-6-0.java, Duplicate Object.png, Producer.java, 
> ProducerClient2-6-0.java, broker1.xml, broker1Server2-6-3.xml, broker2.xml, 
> broker2Server2-6-3.xml
>
>          Time Spent: 5h 50m
>  Remaining Estimate: 0h
>
> We bumped into the following issue, we start getting duplicate message after 
> doing some analysis we saw the "exclusiveBindings" in 
> "org.apache.activemq.artemis.core.postoffice.impl.BindingsImpl" got the same 
> binding twice.
> The if statement in "addBinding"
> {code:java}
> if (binding.isExclusive()) {
>    exclusiveBindings.add(binding);
> } else {
>    SimpleString routingName = binding.getRoutingName();
>    List<Binding> bindings = routingNameBindingMap.get(routingName);
>    if (bindings == null) {
>       bindings = new CopyOnWriteArrayList<>();
>       List<Binding> oldBindings = 
> routingNameBindingMap.putIfAbsent(routingName, bindings);
>       if (oldBindings != null) {
>          bindings = oldBindings;
>       }
>    }
>    if (!bindings.contains(binding)) {
>       bindings.add(binding);
>    }
> }{code}
> Does not do any check in case the binding already exists, this kind of test 
> is done for non exclusive binding.
> I was not able to create an automatic test in the base code because the issue 
> seems related to the client version.
> Scenario:
> - Cluster of two instances (UDP) Artemis Server 1.5.5
> - Clean Up /data/bindings/\*, ../data/journal/\*, ../data/paging/\*
> - Exclusive Divert from jms.queue.\*.Provider.\*.Agent.\*.Status to 
> jms.queue.Notifications
> - Java program using artemis client
> - Start Consumer in Instance 1 (jms.queue.Notifications)
> - Send Message to Instance 1
> - Send Message to Instance 2
> - Send Message to Instance 1
> Expectations:
> - We expect to get 3 message
> Results:
> We got 3 messages when the client uses version 1.5.5
> We got 5 messages when the client uses version 2.6.2
>  
> I enclose two gif one for client 
> "org.apache.activemq:artemis-jms-client:1.5.5" where it works ok and another 
> for "org.apache.activemq:artemis-jms-client:2.6.2" where you can appreciate 
> the issue. 
> Also I enclose one screenshot where you can see the same object is added 
> twice.
> I will also include the broker.xml file to configure the udp cluster + the 
> code use for the producer and consumer.
> Note: The only difference when using client 1.5.5 is the queue name 
> definition I needed to remove the jms.queue prefix.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to