You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2018/02/27 20:12:00 UTC

[jira] [Created] (ARTEMIS-1707) [openwire] error on create of queue if another connection creates one of the same name

Timothy Bish created ARTEMIS-1707:
-------------------------------------

             Summary: [openwire] error on create of queue if another connection creates one of the same name
                 Key: ARTEMIS-1707
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1707
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: OpenWire
    Affects Versions: 2.4.0
         Environment: OpenWire protocol head using ActiveMQ JMS client
            Reporter: Timothy Bish
             Fix For: 2.5.0


When two OpenWire client resources (Producer or Consumer) attempt to create a Queue destination (generally from two different connection) at the same time the following exception can be seen:
{noformat}
java.lang.RuntimeException: javax.jms.JMSException: org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException: AMQ119018: Binding already exists LocalQueueBinding [address=q2, queue=QueueImpl[name=q2, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=5e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2], temp=false]@6ca8009b, filter=null, name=q2, clusterName=q25e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2]
    at net.ssorj.quiver.Client.run(QuiverArrowJms.java:126)
    at net.ssorj.quiver.QuiverArrowJms.doMain(QuiverArrowJms.java:67)
    at net.ssorj.quiver.QuiverArrowJms.main(QuiverArrowJms.java:29)
Caused by: javax.jms.JMSException: org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException: AMQ119018: Binding already exists LocalQueueBinding [address=q2, queue=QueueImpl[name=q2, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=5e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2], temp=false]@6ca8009b, filter=null, name=q2, clusterName=q25e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2]
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1399)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1428)
    at org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:2086)
    at org.apache.activemq.ActiveMQMessageProducer.<init>(ActiveMQMessageProducer.java:124)
    at org.apache.activemq.ActiveMQSession.createProducer(ActiveMQSession.java:1117)
    at net.ssorj.quiver.Client.sendMessages(QuiverArrowJms.java:136)
    at net.ssorj.quiver.Client.run(QuiverArrowJms.java:113)
    ... 2 more
Caused by: java.lang.Throwable: org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException: AMQ119018: Binding already exists LocalQueueBinding [address=q2, queue=QueueImpl[name=q2, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=5e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2], temp=false]@6ca8009b, filter=null, name=q2, clusterName=q25e9fa4c0-1bf8-11e8-ada3-2c56dc3896a2]
    at org.apache.activemq.artemis.core.postoffice.impl.SimpleAddressManager.addBinding(SimpleAddressManager.java:85)
    at org.apache.activemq.artemis.core.postoffice.impl.WildcardAddressManager.addBinding(WildcardAddressManager.java:90)
    at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addBinding(PostOfficeImpl.java:599)
    at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:2765)
    at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:1676)
    at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:588)
    at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:668)
    at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.addDestination(OpenWireConnection.java:768)
    at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processAddProducer(OpenWireConnection.java:1086)
    at org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:108)
    at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:289)
    at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:646)
    at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
    at java.lang.Thread.run(Thread.java:748)
quiver-arrow: Error: Sender exited with code 1

{noformat}
This appears to be a race that should be handled in the protocol head if the requested address being created springs into existence by a similar request by another client.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)