[ https://issues.apache.org/jira/browse/ARTEMIS-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Bertram reassigned ARTEMIS-1707: --------------------------------------- Assignee: Timothy Bish > [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 > Assignee: Timothy Bish > Priority: Major > Fix For: 2.5.0 > > > When two OpenWire client resources (Producer or Consumer) attempt to create a > Queue destination (generally from two different connections) 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)