Ari Tilli created ARTEMIS-427:
---------------------------------

             Summary: Large messages cause underflow in proton.
                 Key: ARTEMIS-427
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-427
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: AMQP
    Affects Versions: 1.3.0
         Environment: RHEL7.2 + openJDK
            Reporter: Ari Tilli


Moved away from STOMP to AMQP since sending 100k messages caused connection to 
break. 

Now when server side is updated to use qpid-c++  messages are still not routed 
to clients (Clients  still use STOMP.)

When sending messages of for example 77746 bytes, message is 
not received by client, and reason is that some buffer "underflows".
After reading some messages from qpid proton list (they send big
messages) , this seems to be Artemis issue.

java.nio.BufferUnderflowException
        at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
        at 
org.apache.qpid.proton.codec.DecoderImpl.readRaw(DecoderImpl.java:939)
        at 
org.apache.qpid.proton.codec.BinaryType$LongBinaryEncoding.readValue(BinaryType.java:110)
        at 
org.apache.qpid.proton.codec.BinaryType$LongBinaryEncoding.readValue(BinaryType.java:67)
        at 
org.apache.qpid.proton.codec.DynamicTypeConstructor.readValue(DynamicTypeConstructor.java:39)
        at 
org.apache.qpid.proton.codec.DecoderImpl.readObject(DecoderImpl.java:887)
        at 
org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:658)
        at 
org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:574)
        at 
org.apache.qpid.proton.jms.EncodedMessage.decode(EncodedMessage.java:46)
        at 
org.apache.qpid.proton.jms.JMSMappingInboundTransformer.transform(JMSMappingInboundTransformer.java:40)
        at 
org.apache.activemq.artemis.core.protocol.proton.converter.ProtonMessageConverter.inboundJMSType(ProtonMessageConverter.java:57)
        at 
org.apache.activemq.artemis.core.protocol.proton.converter.ProtonMessageConverter.inbound(ProtonMessageConverter.java:43)
        at 
org.apache.activemq.artemis.core.protocol.proton.plug.ProtonSessionIntegrationCallback.serverSend(ProtonSessionIntegrationCallback.java:264)
        at 
org.proton.plug.context.server.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:116)
        at 
org.proton.plug.context.AbstractConnectionContext$LocalListener.onDelivery(AbstractConnectionContext.java:273)
        at org.proton.plug.handler.Events.dispatch(Events.java:100)
        at 
org.proton.plug.handler.impl.ProtonHandlerImpl.dispatch(ProtonHandlerImpl.java:363)
        at 
org.proton.plug.handler.impl.ProtonHandlerImpl.flush(ProtonHandlerImpl.java:283)
        at 
org.proton.plug.handler.impl.ProtonHandlerImpl.inputBuffer(ProtonHandlerImpl.java:183)
        at 
org.proton.plug.context.AbstractConnectionContext.inputBuffer(AbstractConnectionContext.java:89)
        at 
org.apache.activemq.artemis.core.protocol.proton.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:128)
        at 
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:627)
        at 
org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
        at java.lang.Thread.run(Thread.java:745)




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to