Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-1859

Incorrect routing with AMQP anonymous producer & auto-created queue

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.6.0
    • None
    • AMQP
    • None

    Description

      Consider the reproducer in the attached PR. Previously, only topic autocreation was attempted in these integration tests. When queue is to be autocreated this way, the broker would still autocreate a topic, and so the new queue autocreation test fails.

      It would seem that the broker is ignoring the "x-opt-jms-dest" message annotation, which qpid-jms correctly sets to 0x0 (a queue).

      There is opportunity for one more test to be written. What would happen if I try to send a message intended to a topic on a message producer which is producing to a queue (of the same name). There should be some error thrown, I guess.

      CC gemmellr, tabish121

      The error from testAnonymousProducerWithQueueAutoCreation is

      [org.apache.commons.beanutils.converters.ArrayConverter] :     No conversion required, value is already a java.net.URL[]
      [main] 11:08:21,877 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/journal0-L5672,bindingsDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/bindings0-L5672,largeMessagesDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/large-msg0-L,pagingDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/page0-L5672)
      [main] 11:08:21,945 INFO  [org.apache.activemq.artemis.core.server] AMQ221013: Using NIO Journal
      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/home/jdanek/.m2/repository/org/apache/karaf/org.apache.karaf.client/4.0.6/org.apache.karaf.client-4.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/home/jdanek/.m2/repository/org/ops4j/pax/logging/pax-logging-api/1.8.5/pax-logging-api-1.8.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/home/jdanek/.m2/repository/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
      SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
      [main] 11:08:22,270 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
      [main] 11:08:22,271 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP
      [main] 11:08:22,271 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP
      [main] 11:08:22,272 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE
      [main] 11:08:22,272 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
      [main] 11:08:22,273 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT
      [main] 11:08:22,425 INFO  [org.apache.activemq.artemis.core.server] AMQ221034: Waiting indefinitely to obtain live lock
      [main] 11:08:22,425 INFO  [org.apache.activemq.artemis.core.server] AMQ221035: Live Server Obtained live lock
      [org.apache.commons.beanutils.BeanUtils] : BeanUtils.populate(org.apache.activemq.artemis.protocol.amqp.broker.ProtonProtocolManager@38c5cc4c, {anycastPrefix=anycast://, multicastPrefix=multicast://})
      [org.apache.commons.beanutils.ConvertUtils] : Convert string 'anycast://' to class 'java.lang.String'
      [org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' value 'anycast://' to type 'String'
      [org.apache.commons.beanutils.ConvertUtils] : Convert string 'multicast://' to class 'java.lang.String'
      [org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' value 'multicast://' to type 'String'
      [org.apache.commons.beanutils.BeanUtils] : BeanUtils.populate(org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager@76508ed1, {anycastPrefix=anycast://, multicastPrefix=multicast://})
      [org.apache.commons.beanutils.ConvertUtils] : Convert string 'anycast://' to class 'java.lang.String'
      [org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' value 'anycast://' to type 'String'
      [org.apache.commons.beanutils.ConvertUtils] : Convert string 'multicast://' to class 'java.lang.String'
      [org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' value 'multicast://' to type 'String'
      [main] 11:08:23,166 ERROR [org.apache.activemq.artemis.core.server] AMQ224000: Failure in initialisation: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
      	at io.netty.channel.unix.Errors.newIOException(Errors.java:122) [netty-transport-native-unix-common-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.unix.Socket.bind(Socket.java:287) [netty-transport-native-unix-common-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.epoll.AbstractEpollChannel.doBind(AbstractEpollChannel.java:688) [netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
      	at io.netty.channel.epoll.EpollServerSocketChannel.doBind(EpollServerSocketChannel.java:70) [netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
      	at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366) [netty-transport-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.24.Final.jar:4.1.24.Final]
      	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309) [netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
      	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [netty-common-4.1.24.Final.jar:4.1.24.Final]
      	at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [:]
      
      [main] 11:08:23,167 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.0-SNAPSHOT [localhost, nodeID=da78638f-54fa-11e8-9211-228524672ac6] 
      [main] 11:08:23,980 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.0-SNAPSHOT [da78638f-54fa-11e8-9211-228524672ac6] stopped, uptime 2.141 seconds
      [main] 11:08:24,238 INFO  [org.apache.activemq.artemis.core.server] **** end #test testAnonymousQueueProducerWithAutoCreation() ***
      
      javax.jms.JMSException: Address 979f219c-11a4-4f94-ab6c-f2a930825b64 is not configured for queue support [condition = amqp:illegal-state]
      
      	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.builders.AmqpResourceBuilder.handleClosed(AmqpResourceBuilder.java:185)
      	at org.apache.qpid.jms.provider.amqp.builders.AmqpResourceBuilder.processRemoteClose(AmqpResourceBuilder.java:129)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:995)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider.access$1900(AmqpProvider.java:105)
      	at org.apache.qpid.jms.provider.amqp.AmqpProvider$17.run(AmqpProvider.java:854)
      	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:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      
      
      Process finished with exit code 255
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jdanek Jiri Daněk
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: