Alexander Andreevich Revkov created ARTEMIS-3308:
----------------------------------------------------
Summary: Federated queue not move large messages
Key: ARTEMIS-3308
URL: https://issues.apache.org/jira/browse/ARTEMIS-3308
Project: ActiveMQ Artemis
Issue Type: Bug
Components: Broker
Affects Versions: 2.17.0
Environment: Windows 10 Pro (jdk 1.8 oracle last) artemis 2.17.0
Reporter: Alexander Andreevich Revkov
Hello. I'am create two artemis broker:
artemis01:
{code:java}
artemis create --max-hops=1 artemis01{code}
artemis02:
{code:java}
artemis create --max-hops=1 --port-offset=10 artemis02{code}
user: artemis
password: artemis
In artemis01/etc/broker.xml i add:
{code:java}
<connectors>
<connector name="artemis02-connector">tcp://localhost:61626</connector>
</connectors>
<federations>
<federation name="artemis01-federation" user="artemis" password="artemis">
<upstream name="artemis02">
<static-connectors>
<connector-ref>artemis02-connector</connector-ref>
</static-connectors>
<policy ref="artemis-queue-federation"/>
</upstream>
<queue-policy name="artemis-queue-federation" priority-adjustment="-5"
include-federated="false">
<include queue-match="#" address-match="TEST.FEDERATED"/>
</queue-policy>
</federation>
</federations>{code}
then run both brokers.
I send large message to artemis02:
{code:java}
artemis producer --url tcp://localhost:61626 --text-size 8000000 --destination
TEST.FEDERATED --message-count 1 --user artemis --password artemis{code}
And then try get it from artemis01:
{code:java}
artemis consumer --url tcp://localhost:61616 --destination TEST.FEDERATED
--message-count 1 --user artemis --password artemis{code}
But i can't received message. Consumer stuck it loop. And artemis01 write in
logs many NPE:
{code:java}
***** durable queues TEST.FEDERATED:
- queueID=30 address:TEST.FEDERATED name:TEST.FEDERATED filter:null
***** non durable for TEST.FEDERATED:
..................................................
, direct: true, rejectDuplicates: true
2021-05-19 19:27:18,001 DEBUG
[org.apache.activemq.artemis.core.server.plugin.impl] AMQ843017:
onMessageRouteError message: ClientLargeMessageImpl[messageID=1518976,
durable=true,
address=TEST.FEDERATED::TEST.FEDERATED,userID=50cb6a04-b8bd-11eb-85ab-00155d7523cb,properties=TypedProperties[__AMQ_CID=50bf3501-b8bd-11eb-85ab-00155d7523cb,_AMQ_ROUTING_TYPE=1,count=0,_AMQ_LARGE_SIZE=16014077,ThreadSent=Producer
ActiveMQQueue[TEST.FEDERATED], thread=0]], with context:
RoutingContextImpl(Address=null, routingType=null, PreviousAddress=null
previousRoute:null, reusable=false, version=0)
..................................................
***** durable queues TEST.FEDERATED:
- queueID=30 address:TEST.FEDERATED name:TEST.FEDERATED filter:null
***** non durable for TEST.FEDERATED:
..................................................
, direct: true, rejectDuplicates: true
2021-05-19 19:27:18,002 INFO
[org.apache.activemq.artemis.core.server.plugin.impl] AMQ841018: error routing
message with ID: 1518976, exception: java.lang.NullPointerException
{code}
I see some source code and find what NPE occurs in CoreMessage.java class at
717 line because buffer is NULL:
{code:java}
buffer.setIndex(0, 0);{code}
Not large messages works fine. Please fix it.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)