Uploaded image for project: 'A-MQ Broker'
  1. A-MQ Broker
  2. ENTMQBR-655

[AMQP] Unable to send message when populate-validated-user is enabled

    Details

    • Type: Bug
    • Status: New
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: A-MQ 7.0.0.CR1
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:

      populate-validated-user set to true.
      AMQP client sends message without application-properties section.

    • Target Release:
    • Affects:
      Documentation (Ref Guide, User Guide, etc.), Release Notes
    • Release Notes Text:
      The configuration option populate-validated-user is not supported for messages produced using the AMQP protocol.
    • Release Notes Docs Status:
      Documented as Known Issue

      Description

      Once the "populate-validated-user" is set to true in broker.xml config file, amqp qpid-jms client is unable to send messages to it. Here are logs from client & broker.

      Although this feature is not supported in ENTMQBR-628, messages should in my opinion not be refused.
      Note: This works fine with other AMQP clients qpid-cpp & python-qpid client. Seems to me that those two clients do not exercise that code.

      java  -jar /var/dtests/node_data/clients/aac1.jar sender  --timeout 5 --log-msgs dict --broker localhost:5672 --conn-username admin --conn-password admin --address "test_populate_validated_user_option" --count 1 
      [1677908953:0] -> Open{ containerId='ID:e01f431a-e48a-4367-98de-9ede4147489f:1', hostname='localhost', maxFrameSize=1048576, channelMax=32767, idleTimeOut=30000, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container], properties={product=QpidJMS, version=0.21.0.redhat-1, platform=JVM: 1.8.0_101, 25.101-b13, Oracle Corporation, OS: Linux, 2.6.32-642.6.1.el6.x86_64, amd64}}
      [1677908953:0] <- Open{ containerId='amq', hostname='null', maxFrameSize=4294967295, channelMax=65535, idleTimeOut=30000, outgoingLocales=null, incomingLocales=null, offeredCapabilities=[sole-connection-for-container, DELAYED_DELIVERY, SHARED-SUBS, ANONYMOUS-RELAY], desiredCapabilities=null, properties={product=apache-activemq-artemis, version=2.0.0.amq-700005-redhat-1}}
      [1677908953:0] -> Begin{remoteChannel=null, nextOutgoingId=1, incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:0] <- Begin{remoteChannel=0, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:1] -> Begin{remoteChannel=null, nextOutgoingId=1, incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:1] <- Begin{remoteChannel=1, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:1] -> Attach{name='qpid-jms:sender:ID:ece2573f-49c5-4093-9544-20c71b4709c1:1:1:1:test_populate_validated_user_option', handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, source=Source{address='ID:ece2573f-49c5-4093-9544-20c71b4709c1:1:1:1', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list, amqp:modified:list], capabilities=null}, target=Target{address='test_populate_validated_user_option', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=[queue]}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:1] <- Attach{name='qpid-jms:sender:ID:ece2573f-49c5-4093-9544-20c71b4709c1:1:1:1:test_populate_validated_user_option', handle=0, role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='ID:ece2573f-49c5-4093-9544-20c71b4709c1:1:1:1', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list, amqp:modified:list], capabilities=null}, target=Target{address='test_populate_validated_user_option', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=[queue]}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
      [1677908953:1] <- Flow{nextIncomingId=1, incomingWindow=2147483647, nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=1000, available=null, drain=false, echo=false, properties=null}
      [1677908953:1] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, messageFormat=0, settled=null, more=false, rcvSettleMode=null, state=null, resume=false, aborted=false, batchable=false} (161) "\x00Sp\xc0\x02\x01A\x00Sr\xc1)\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-typeQ\x00\x00Ss\xc0g\x0a\xa1/ID:ece2573f-49c5-4093-9544-20c71b4709c1:1:1:1-1@\xa1#test_populate_validated_user_option@@@@@@\x83\x00\x00\x01[\xb3\x89\x8c\x15"
      [1677908953:1] <- Disposition{role=RECEIVER, first=0, last=0, settled=true, state=Rejected{error=Error{condition=failed, description='null', info=null}}, batchable=false}
      09:49:47,718 ERROR Error while sending a message!
      javax.jms.JMSException: Received error from remote peer without description [condition = failed]
      	at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:164)
      	at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:117)
      	at org.apache.qpid.jms.provider.amqp.AmqpFixedProducer.processDeliveryUpdates(AmqpFixedProducer.java:236)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:908)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider.access$1800(AmqpProvider.java:93)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider$18.run(AmqpProvider.java:789)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      	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)
      

      broker log

      09:46:25,461 WARN  [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext] null: java.lang.UnsupportedOperationException
              at java.util.AbstractMap.put(AbstractMap.java:209) [rt.jar:1.8.0_101]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.putStringProperty(AMQPMessage.java:763) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.putStringProperty(AMQPMessage.java:961) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1310) [artemis-server-2.0.0.amq-700005-redhat-1.jar:2.0.0.amq-700005-redhat-1]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:427) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:398) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:172) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:488) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:330) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:259) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:223) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:120) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:138) [artemis-amqp-protocol-2.0.0.amq-700005-redhat-1.jar:]
              at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:628) [artemis-server-2.0.0.amq-700005-redhat-1.jar:2.0.0.amq-700005-redhat-1]
              at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:69) [artemis-core-client-2.0.0.amq-700005-redhat-1.jar:2.0.0.amq-700005-redhat-1]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:972) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:386) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:302) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_101]
      

      I believe this should go to release notes Susan Jay next to ENTMQBR-628 item as they are closely related. Thank you

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  ataylor Andy Taylor
                  Reporter:
                  mtoth Michal Toth
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated: