-
Bug
-
Resolution: Done
-
Blocker
-
8.1.0.Beta
-
None
-
False
-
-
False
-
-
-
-
-
-
Known Issue
-
-
-
There is corrupted large message after clean shutdown and restart of EAP 8.1.0 Beta CR4 server (ActiveMQ Artemis 2.38.0) which is part of collocated HA cluster.
Customer impact: In a collocated HA topology, if one of the EAP servers is shut down and restarted (a standard administrative operation) there is a possibility that one or more large messages (over 100KB by default) may become corrupted.
Test Scenario:
- start two EAP servers in colocated HA topology in cluster with InQueue and OutQueue
- start producer to each of the servers and send 6000 messages to InQueue
- deploy MDBs to 2nd node which consumes messages from InQueue and resends new message to OutQueue
- wait until some messages are processed
- shut down node-2
- check if backup server on node-1 comes alive
- start node-2 again
- check failback of live on node-2
- when all messages are processed, consume all messages from OutQueue
Expected result: Receiver gets all messages which were sent.
Actual result: One or more messages are not delivered into OutQueue. Node-2 throws:
11:47:49,586 ERROR [org.apache.activemq.artemis.ra.ActiveMQRALogger] (Thread-14 (ActiveMQ-client-global-threads)) AMQ154004: Failed to deliver message: java.lang.IndexOutOfBoundsException: Error reading in simpleString, length=16777216 is greater than readableBytes=413159 at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:255) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:243) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:248) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.collections.TypedProperties.decode(TypedProperties.java:510) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.collections.TypedProperties.decode(TypedProperties.java:581) at org.apache.activemq.artemis.client@2.38.0//org.apache.activemq.artemis.reader.MapMessageUtil.readBodyMap(MapMessageUtil.java:46) at org.apache.activemq.artemis.client@2.38.0//org.apache.activemq.artemis.jms.client.ActiveMQMapMessage.doBeforeReceive(ActiveMQMapMessage.java:327) at org.apache.activemq.artemis.ra@2.38.0//org.apache.activemq.artemis.ra.inflow.ActiveMQMessageHandler.onMessage(ActiveMQMessageHandler.java:313) at org.apache.activemq.artemis.client@2.38.0//org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:971) at org.apache.activemq.artemis.client@2.38.0//org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1128) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at org.apache.activemq.artemis.commons@2.38.0//org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
anytime it tries to receive corrupted message from InQueue.
- is cloned by
-
ENTMQBR-9641 Journal Transaction Record is stored before paged data, which could lead to TX inconsistency after crash or regular stop.
-
- Verified
-
- is incorporated by
-
JBEAP-30130 (8.1.z) Upgrade Artemis from 2.33.0.redhat-00017 to 2.40.0.redhat-0005
-
- Verified
-