[ 
https://issues.apache.org/jira/browse/ARTEMIS-2266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17486670#comment-17486670
 ] 

Justin Bertram commented on ARTEMIS-2266:
-----------------------------------------

Can you retest this on the latest release (i.e. 2.20.0)? If you are able to 
reproduce it please attach the {{AmqJmsConsume}} and {{AmqJmsProducer}} 
utilities that you are using to reproduce the issue. You could also link to a 
GitHub project if that's easier for you. Thanks!

> large message lost with divert
> ------------------------------
>
>                 Key: ARTEMIS-2266
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2266
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.6.3
>            Reporter: Jigar Parekh
>            Priority: Major
>
> I have following queue setup in cluster 
> {code:java}
> <diverts> 
>    <divert name="RF-IT"> 
>       <routing-name>RF-IT</routing-name> 
>       <address>RFTopic</address> 
>       <forwarding-address>IT-InputQueue</forwarding-address> 
>       <exclusive>false</exclusive> 
>    </divert> 
>    <divert name="RF-MO"> 
>       <routing-name>RF-MO</routing-name> 
>       <address>RFTopic</address> 
>       <forwarding-address>RFInputQueue</forwarding-address> 
>       <exclusive>false</exclusive> 
>    </divert> 
> </diverts> 
> <address name="IT-InputQueue"> 
>    <anycast> 
>       <queue name="IT-InputQueue" /> 
>    </anycast> 
> </address> 
> <address name="RFInputQueue"> 
>    <anycast> 
>        <queue name="RFInputQueue" /> 
>    </anycast> 
> </address> 
> <address name="RFTopic"> 
>    <multicast /> 
> </address> {code}
> server1 running on 61616 and server2 running of 61626 
> I start two consumer with two different available master server 
> {code:java}
> java -jar AmqJmsConsumejar -duration 5 -queue IT-InputQueue -stats -log 
> /tmp/artemis/4 -verify -commitdelay 300 -url 'tcp://localhost:61626' 
> java -jar AmqJmsConsumejar -duration 5 -queue IT-InputQueue -stats -log 
> /tmp/artemis/4 -verify -commitdelay 300 -url 'tcp://localhost:61616' {code}
> and run producer to server1 as below 
> {code:java}
> java -jar AmqJmsProducer.jar -topic RFTopic -stats -log /tmp/artemis/4 -id 
> -count 500 -n 500 -ttl 3600000 -url 'tcp://localhost:61616' -outliers 100 
> -outliersize 500k {code}
> both consumer gets few message but after below exception server1 clears 
> queue with almost 50% of messages but rest of messages are stuck with 
> internal.sf.cluster queue and not received by any consumer. 
> {noformat}
> java.lang.IllegalStateException: no queueIDs defined 
>         at 
> org.apache.activemq.artemis.core.server.cluster.impl.ClusterConnectionBridge.beforeForward(ClusterConnectionBridge.java:180)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.handle(BridgeImpl.java:609)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.handle(QueueImpl.java:2983)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2334)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2000(QueueImpl.java:107)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3209)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  
> [rt.jar:1.8.0_191] 
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  
> [rt.jar:1.8.0_191] 
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
> 2019-01-08 15:15:33,668 WARN 
> [org.apache.activemq.artemis.core.server.impl.QueueImpl] null: 
> java.util.NoSuchElementException 
>         at 
> org.apache.activemq.artemis.utils.collections.PriorityLinkedListImpl$PriorityLinkedListIterator.repeat(PriorityLinkedListImpl.java:172)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2353)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2000(QueueImpl.java:107)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3209)
>  
> [artemis-server-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
>  
> [artemis-commons-2.6.3.jar:2.6.3] 
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  
> [rt.jar:1.8.0_191] 
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  
> [rt.jar:1.8.0_191] 
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  
> [artemis-commons-2.6.3.jar:2.6.3] {noformat}
> seems some bug with divert and large message forwarding to another node. 
> If remove one divert or change configuration like below then everything 
> works fine without any message lost. 
> {code:java}
> <address name="RFTopic"> 
>    <multicast> 
>      <queue name="IT-InputQueue"> 
>      </queue> 
>      <queue name="RFInputQueue" /> 
>    </multicast> 
> </address> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to