]
Miroslav Novak commented on WFWIP-67:
-------------------------------------
[~clebert.suconic] I've updated steps to rerproduce. There is used EAP 7.1.0.GA as old
server and then latest WF/Artemis 2.x build from you [1] for new server.
Note that there is no Artemis cluster between old and new servers. It's common LODH
scenario. Two old JMS servers in cluster. Then 2 new servers in connecting by remote JCA
to old JMS cluster. JMS servers are sequentially killed and started again.
IndexOutOfBoundsException is thrown from receiver which consumes messages from OutQueue at
the end of the test. It receives malformed message thus IndexOutOfBoundsException.
[1]
[Artemis 2.x upgrade] IndexOutOfBoundsException during receiving
messages in remote JCA scenario between Artemis 1.5 and 2.x
-----------------------------------------------------------------------------------------------------------------------------
Key: WFWIP-67
URL:
https://issues.jboss.org/browse/WFWIP-67
Project: WildFly WIP
Issue Type: Bug
Components: Artemis
Reporter: Martin Styk
Assignee: Martyn Taylor
Priority: Blocker
*Scenario:*
Nodes A and B are in cluster. Destinations InQueue and OutQueue are deployed on them.
MDBs are deployed on node C and D. These MDBs read messages from InQueue of nodes A, B
and sends them to OutQueue on A and B.
Nodes A,B are running Artemis 1.5. Nodes C,D are using Artemis 2.6.
# Client sends messages to InQueue on node A
# MDBs on nodes C,D read messages from remote InQueue and send them to remote OutQueue on
nodes A,B
# During processing of messages nodes A and C are killed
# Client reads messages from OutQueue on node B.
*Issue*
At the end of the test, client is not able to read message
{code}
java.lang.IndexOutOfBoundsException: readerIndex(9) + length(128) exceeds
writerIndex(133): UnpooledDuplicatedByteBuf(ridx: 9, widx: 133, cap: 606, unwrapped:
UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 606, cap:
606))
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1405)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1392)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:872)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:880)
at io.netty.buffer.WrappedByteBuf.readBytes(WrappedByteBuf.java:649)
at
org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:183)
at
org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:171)
at
org.apache.activemq.artemis.api.core.SimpleString.readNullableSimpleString(SimpleString.java:158)
at
org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readNullableSimpleString(ChannelBufferWrapper.java:69)
at
org.apache.activemq.artemis.reader.TextMessageUtil.readBodyText(TextMessageUtil.java:37)
at
org.apache.activemq.artemis.jms.client.ActiveMQTextMessage.doBeforeReceive(ActiveMQTextMessage.java:112)
at
org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage(ActiveMQMessageConsumer.java:224)
at
org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:132)
at org.jboss.qa.hornetq.apps.clients.Receiver11.receiveMessage(Receiver11.java:151)
at org.jboss.qa.hornetq.apps.clients.ReceiverTransAck.run(ReceiverTransAck.java:89)
{code}