Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-207

Message exception if size >10kB

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • A-MQ 7.0.0.ER4
    • None
    • None
    • None
    • Hide
      1. Setup jamq with admin:admin
      2. Start jamq 7.0.0 (ER2): 
      3. Generate message large than 10kB: dd if=/dev/zero of=MESSAGE bs=1MB count=2
      4. Send message: ./aac1_sender.java.sh --broker 127.0.0.1:5672 --msg-content-from-file MESSAGE --conn-username admin --conn-password admin --address jms.queue.myqueue --log-msgs dict
      5. Wait for exception
      Show
      Setup jamq with admin:admin Start jamq 7.0.0 (ER2):  Generate message large than 10kB: dd if=/dev/zero of=MESSAGE bs=1MB count=2 Send message: ./aac1_sender.java.sh --broker 127.0.0.1:5672 --msg-content-from-file MESSAGE --conn-username admin --conn-password admin --address jms.queue.myqueue --log-msgs dict Wait for exception

    Description

      I tested artemis-native module -> libaio with jounral set to ASYNCIO. When I send message with size larger than 10kB I get exception.

      Reproducer it's like this: https://issues.apache.org/jira/browse/ARTEMIS-214

      Exception:

      java.lang.IllegalArgumentException
      	at java.nio.Buffer.limit(Buffer.java:275)
      	at org.apache.qpid.proton.codec.DecoderImpl.readRaw(DecoderImpl.java:945)
      	at org.apache.qpid.proton.codec.StringType$AllStringEncoding.readValue(StringType.java:169)
      	at org.apache.qpid.proton.codec.StringType$AllStringEncoding.readValue(StringType.java:121)
      	at org.apache.qpid.proton.codec.DynamicTypeConstructor.readValue(DynamicTypeConstructor.java:39)
      	at org.apache.qpid.proton.codec.DecoderImpl.readObject(DecoderImpl.java:885)
      	at org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:647)
      	at org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:577)
      	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:250)
      	at org.proton.plug.handler.Events.dispatch(Events.java:100)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.dispatch(ProtonHandlerImpl.java:339)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.flush(ProtonHandlerImpl.java:259)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.inputBuffer(ProtonHandlerImpl.java:159)
      	at org.proton.plug.context.AbstractConnectionContext.inputBuffer(AbstractConnectionContext.java:82)
      	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:621)
      	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)
      

      How reproducible:
      100%

      Attachments

        Issue Links

          Activity

            People

              rh-ee-ataylor Andy Taylor
              dlenoch@redhat.com Dominik Lenosi
              Andy Taylor
              Dominik Lenosi Dominik Lenosi
              Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: