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

[AMQP] Broker fails when client sends messages larger than maxFrameSize(?)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • A-MQ 7.0.0.GA
    • A-MQ 7.0.0.ER7
    • None
    • Hide

      1. Start the broker on linux
      2. Start the Lite self test

      mstest /testcontainer:./Test.Amqp.Net/Test.Amqp.Net.dll /test:TestMethod_ConnectionFrameSize
      
      Show
      1. Start the broker on linux 2. Start the Lite self test mstest /testcontainer:./Test.Amqp.Net/Test.Amqp.Net.dll /test:TestMethod_ConnectionFrameSize
    • Broker - August Sprint

    Description

      The title of this issue is just a guess. The self test sets a maxFrameSize of 4096 and then sends 200 messages of length 3996..4195. Some of the messages fit in one frame and the rest are spread across two frames.

      I can't get my Adverb trace analysis as the tshark decoder fails.

      Running this test against Qpidd broker or the Lite builtin broker works fine.

      15:08:29,985 INFO  [org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager] Couldn't validate user: user name is null
      !!!!! Readable!!!!!!!
      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:595)
      	at org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:574)
      	at org.apache.activemq.artemis.core.protocol.proton.converter.message.AMQPNativeOutboundTransformer.transform(AMQPNativeOutboundTransformer.java:43)
      	at org.apache.activemq.artemis.core.protocol.proton.converter.ProtonMessageConverter.outbound(ProtonMessageConverter.java:99)
      	at org.apache.activemq.artemis.core.protocol.proton.plug.ProtonSessionIntegrationCallback.encodeMessage(ProtonSessionIntegrationCallback.java:250)
      	at org.proton.plug.context.server.ProtonServerSenderContext.deliverMessage(ProtonServerSenderContext.java:356)
      	at org.apache.activemq.artemis.core.protocol.proton.plug.ProtonSessionIntegrationCallback.sendMessage(ProtonSessionIntegrationCallback.java:413)
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1043)
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:417)
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2464)
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:1956)
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$1500(QueueImpl.java:99)
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:2695)
      	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:103)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      15:08:31,942 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=0, filter=null, binding=LocalQueueBinding [address=q1, queue=QueueImpl[name=q1, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=191a3431-2c1d-11e6-a283-4ceb42c7eda9]]@24a0361d, filter=null, name=q1, clusterName=q1191a3431-2c1d-11e6-a283-4ceb42c7eda9]], message=Reference[3613]:RELIABLE:ServerMessage[messageID=3613,durable=true,userID=null,priority=4, bodySize=4096, timestamp=Tue Jun 14 15:08:31 EDT 2016,expiration=0, durable=true, address=q1,properties=TypedProperties[JMS_AMQP_NATIVE=true,JMS_AMQP_MESSAGE_FORMAT=0]]@1151483954: java.lang.NullPointerException
      	at org.apache.qpid.proton.engine.impl.TransportSession.handleTransfer(TransportSession.java:272) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleTransfer(TransportImpl.java:1214) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleTransfer(TransportImpl.java:64) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.amqp.transport.Transfer.invoke(Transfer.java:160) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleFrame(TransportImpl.java:1332) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.FrameParser.input(FrameParser.java:419) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.FrameParser.process(FrameParser.java:528) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.SaslImpl$SaslTransportWrapper.reallyProcessInput(SaslImpl.java:652) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.SaslImpl$SaslTransportWrapper.process(SaslImpl.java:601) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.HandshakeSniffingTransportWrapper.process(HandshakeSniffingTransportWrapper.java:101) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.process(TransportImpl.java:1443) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.flush(ProtonHandlerImpl.java:280) [artemis-proton-plug-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.proton.plug.context.AbstractConnectionContext.flush(AbstractConnectionContext.java:126) [artemis-proton-plug-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.protocol.proton.plug.ProtonSessionIntegrationCallback.sendMessage(ProtonSessionIntegrationCallback.java:418) [artemis-amqp-protocol-1.2.0.amq-700007-redhat-1.jar:]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1043) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:417) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2464) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:1956) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$1500(QueueImpl.java:99) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:2695) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:103) [artemis-core-client-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_91]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_91]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_91]
      
      15:08:33,908 WARN  [org.apache.activemq.artemis.core.server] null: java.lang.NullPointerException
      	at org.apache.qpid.proton.engine.impl.TransportSession.handleTransfer(TransportSession.java:272) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleTransfer(TransportImpl.java:1214) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleTransfer(TransportImpl.java:64) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.amqp.transport.Transfer.invoke(Transfer.java:160) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.handleFrame(TransportImpl.java:1332) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.FrameParser.input(FrameParser.java:419) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.FrameParser.process(FrameParser.java:528) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.SaslImpl$SaslTransportWrapper.reallyProcessInput(SaslImpl.java:652) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.SaslImpl$SaslTransportWrapper.process(SaslImpl.java:601) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.HandshakeSniffingTransportWrapper.process(HandshakeSniffingTransportWrapper.java:101) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.apache.qpid.proton.engine.impl.TransportImpl.process(TransportImpl.java:1443) [proton-j-0.12.0.redhat-1.jar:0.12.0.redhat-1]
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.flush(ProtonHandlerImpl.java:280) [artemis-proton-plug-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.proton.plug.context.AbstractConnectionContext.flush(AbstractConnectionContext.java:126) [artemis-proton-plug-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.core.protocol.proton.ActiveMQProtonRemotingConnection.flush(ActiveMQProtonRemotingConnection.java:123) [artemis-amqp-protocol-1.2.0.amq-700007-redhat-1.jar:]
      	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$FailureCheckAndFlushThread$1.run(RemotingServiceImpl.java:681) [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:103) [artemis-core-client-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_91]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_91]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_91]
      
      

      This is followed by a string of NPE errors at transport(272)

      Attachments

        Issue Links

          Activity

            People

              gaohoward Howard Gao
              crolke@redhat.com Chuck Rolke (Inactive)
              David Kornel David Kornel
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: