You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Jigar Parekh (JIRA)" <ji...@apache.org> on 2019/03/04 07:14:00 UTC
[jira] [Closed] (AMQ-7161) large message lost with divert
[ https://issues.apache.org/jira/browse/AMQ-7161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jigar Parekh closed AMQ-7161.
-----------------------------
Resolution: Invalid
should be reported in artemis
> large message lost with divert
> ------------------------------
>
> Key: AMQ-7161
> URL: https://issues.apache.org/jira/browse/AMQ-7161
> Project: ActiveMQ
> Issue Type: Bug
> 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
(v7.6.3#76005)