You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "clebert suconic (JIRA)" <ji...@apache.org> on 2017/08/31 19:12:34 UTC

[jira] [Closed] (ARTEMIS-1023) [Openwire] Autocreate of queues does not work, also corrupts future use of queue

     [ https://issues.apache.org/jira/browse/ARTEMIS-1023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

clebert suconic closed ARTEMIS-1023.
------------------------------------

> [Openwire] Autocreate of queues does not work, also corrupts future use of queue
> --------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1023
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1023
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: OpenWire
>    Affects Versions: 2.0.0
>         Environment: openwire client used from (amq6.3.0)
> broker built today (march 7) with latest commits after big merge by clebert
>            Reporter: Michal Toth
>
> In default configuration I am unable to send messages to non-existing queue(address). Openwire client is unable to create such destination and ends with exception (see below). AMQP clients are able to create destination without any problems.
> {noformat}
> 17:18:57,400 DEBUG Connection=tcp://mySuperHost:61616?jms.username=admin&jms.clientID=lalaid&jms.password=admin
> 17:18:57,728 DEBUG Sending: WireFormatInfo { version=10, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, StackTraceEnabled=true, CacheEnabled=true, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, Host=mySuperHost, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000}, magic=[A,c,t,i,v,e,M,Q]}
> 17:18:57,755 DEBUG Using min of local: WireFormatInfo { version=10, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, StackTraceEnabled=true, CacheEnabled=true, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, Host=mySuperHost, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000}, magic=[A,c,t,i,v,e,M,Q]} and remote: WireFormatInfo { version=12, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, StackTraceEnabled=true, PlatformDetails=JVM: 1.8.0_51, 25.51-b03, Oracle Corporation, OS: Linux, 3.10.0-514.el7.x86_64, amd64, CacheEnabled=false, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.14.0}, magic=[A,c,t,i,v,e,M,Q]}
> 17:18:57,756 DEBUG Received WireFormat: WireFormatInfo { version=12, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, StackTraceEnabled=true, PlatformDetails=JVM: 1.8.0_51, 25.51-b03, Oracle Corporation, OS: Linux, 3.10.0-514.el7.x86_64, amd64, CacheEnabled=false, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.14.0}, magic=[A,c,t,i,v,e,M,Q]}
> 17:18:57,756 DEBUG tcp:///mySuperHost:61616@54010 before negotiation: OpenWireFormat{version=10, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false, maxFrameSize=9223372036854775807}
> 17:18:57,756 DEBUG tcp:///mySuperHost:61616@54010 after negotiation: OpenWireFormat{version=10, cacheEnabled=false, stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false, maxFrameSize=9223372036854775807}
> javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://lalaQ2
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:348)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession$$Lambda$13/1858141804.run(Unknown Source)
> 	at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:696)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:341)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1368)
> 	at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:270)
> 	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:629)
> 	at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
> 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
> 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:574)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:488)
> 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450)
> 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
> 	at java.lang.Thread.run(Thread.java:745)
> 17:18:58,010 ERROR Error while sending a message!
> 17:18:58,011 DEBUG Received unexpected response: {Response {commandId = 0, responseRequired = false, correlationId = 5}}for command id
> {noformat}
> I have also noticed, that when Openwire sender is unable to create this queue, it imo creates some object, which is then unusable. I was able to send message to it via AMQP sender (possibly), but AMQP receiver could not get the message. Interestingly, when I tried to send message again to this queue using Openwire client, it client responded with the same error "javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://trashQ".
> Please note, that both amqp sender & receiver exited normally (which might be another issue).
> [~martyntaylor] [~clebertsuconic] might be able to help with this.
> {noformat}
> [0,root@r7x0_mtoth clients]$ java  -jar /var/dtests/node_data/clients/aoc7.jar sender  --log-msgs dict  --conn-username admin --conn-password admin --address trashQ --count 1
> 17:44:39,493 ERROR Error while sending a message!
> javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://trashQ
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:348)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession$$Lambda$13/820191545.run(Unknown Source)
> 	at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:696)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:341)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1368)
> 	at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:270)
> 	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:629)
> 	at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
> 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
> 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:574)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:488)
> 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450)
> 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
> 	at java.lang.Thread.run(Thread.java:745)
> [1,root@r7x0_mtoth clients]$ java  -jar /var/dtests/node_data/clients/aac1.jar sender  --log-msgs dict  --conn-username admin --conn-password admin --address trashQ --count 1
> {'redelivered': False, 'reply_to': None, 'id': '5b57aaeb-e994-4b4a-b659-e44d938d6b6d:1:1:1-1', 'user_id':None, 'correlation_id': None, 'priority': 4, 'durable': True, 'ttl': 0, 'type': None, 'expiration': 0, 'timestamp': 1488905087971, 'address': 'trashQ', 'properties': {'JMSXDeliveryCount': 1}, 'content': None}
> [0,root@r7x0_mtoth clients]$ java  -jar /var/dtests/node_data/clients/aac1.jar receiver  --log-msgs dict  --conn-username admin --conn-password admin --address trashQ --count 1
> [0,root@r7x0_mtoth clients]$ java  -jar /var/dtests/node_data/clients/aoc7.jar sender  --log-msgs dict  --conn-username admin --conn-password admin --address trashQ --count 1
> 17:45:00,430 ERROR Error while sending a message!
> javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://trashQ
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:348)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession$$Lambda$13/820191545.run(Unknown Source)
> 	at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:696)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:341)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1368)
> 	at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:270)
> 	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:629)
> 	at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
> 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
> 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
> 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
> 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:574)
> 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:488)
> 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450)
> 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
> 	at java.lang.Thread.run(Thread.java:745)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)