You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Howard Gao (JIRA)" <ji...@apache.org> on 2017/10/23 04:04:00 UTC

[jira] [Assigned] (ARTEMIS-1416) Queue autocreate does not autocreate queue if address already exists

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

Howard Gao reassigned ARTEMIS-1416:
-----------------------------------

    Assignee: Howard Gao

> Queue autocreate does not autocreate queue if address already exists
> --------------------------------------------------------------------
>
>                 Key: ARTEMIS-1416
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1416
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker, OpenWire
>    Affects Versions: 2.3.0
>            Reporter: Jiri Daněk
>            Assignee: Howard Gao
>
> # Configure <journal-type>NIO</journal-type> in broker.xml (that is the default if you don't have libaio on your system)
> # Start Artemis Broker
> # Excecute test https://github.com/jdanekrh/jms-reproducers/blob/master/src/test/java/org/apache/activemq/artemis/tests/integration/jms/largemessage/JMSLargeMessageTest.java. (Two tests. testSmallString sends message of size 1024 and testHugeString sends message of size 1024*1024. Using Core JMS client, activemq-client and qpid-jms-client in turn)
> In case of testSmallString, Core and AMQP fails, OpenWire succeeds. The problem here as I see it is that the test creates an address, but not a queue. There is queue autocreate turned on, so I'd expect queue to be created. It is not, except for OpenWire.
> In case of testHugeString, this fails for all. In case of Core and AMQP, the cause is IMO the same as in testSmallString. In case of OpenWire, there are the following scary error messages, reproduced below.
> If I modify the test to create both address and queue, then all the tests in the class pass.
> The OpenWire error in testHugeString
> {noformat}
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
> javax.jms.JMSException: Cannot find add info 115 on compactor or current records
> 	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.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1323)
> 	at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1967)
> 	at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:288)
> 	at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:223)
> 	at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
> 	at org.apache.activemq.artemis.tests.integration.jms.largemessage.JMSLargeMessageTest.sendStringOfSize(JMSLargeMessageTest.java:88)
> 	at org.apache.activemq.artemis.tests.integration.jms.largemessage.JMSLargeMessageTest.testHugeString(JMSLargeMessageTest.java:62)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
> 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalStateException: Cannot find add info 115 on compactor or current records
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.checkKnownRecordID(JournalImpl.java:994)
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendUpdateRecord(JournalImpl.java:813)
> 	at org.apache.activemq.artemis.core.journal.Journal.appendUpdateRecord(Journal.java:98)
> 	at org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.storeReference(AbstractJournalStorageManager.java:382)
> 	at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1155)
> 	at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:820)
> 	at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:722)
> 	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1688)
> 	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1365)
> 	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1309)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:357)
> 	at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:706)
> 	at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:353)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1458)
> 	at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
> 	at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:273)
> 	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:642)
> 	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:1342)
> 	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:934)
> 	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:979)
> 	at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:338)
> 	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
> 	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
> 	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:312)
> 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
> 	... 1 more
> {noformat}
> Logs from broker
> {noformat}
> 14:57:02,113 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendAddRecord::java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal: java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal
>         at org.apache.activemq.artemis.core.io.buffer.TimedBuffer.checkSize(TimedBuffer.java:198) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.io.AbstractSequentialFile.fits(AbstractSequentialFile.java:168) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl.switchFileIfNecessary(JournalImpl.java:2918) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendRecord(JournalImpl.java:2640) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl.access$200(JournalImpl.java:88) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl$1.run(JournalImpl.java:778) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) [artemis-commons-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_141]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_141]
>         at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_141]
> 14:57:02,115 WARN  [org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession] Cannot find add info 115 on compactor or current records: java.lang.IllegalStateException: Cannot find add info 115 on compactor or current records
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl.checkKnownRecordID(JournalImpl.java:994) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendUpdateRecord(JournalImpl.java:813) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.journal.Journal.appendUpdateRecord(Journal.java:98) [artemis-journal-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.storeReference(AbstractJournalStorageManager.java:382) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1155) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:820) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:722) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1688) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1365) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1309) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:357) [artemis-openwire-protocol-2.4.0-SNAPSHOT.jar:]
>         at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:706) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:353) [artemis-openwire-protocol-2.4.0-SNAPSHOT.jar:]
>         at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1458) [artemis-openwire-protocol-2.4.0-SNAPSHOT.jar:]
>         at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768) [activemq-client-5.14.5.jar:5.14.5]
>         at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:273) [artemis-openwire-protocol-2.4.0-SNAPSHOT.jar:]
>         at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:642) [artemis-server-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68) [artemis-core-client-2.4.0-SNAPSHOT.jar:2.4.0-SNAPSHOT]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1342) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:934) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:979) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:338) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:312) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-all-4.1.14.Final.jar:4.1.14.Final]
>         at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_141]
> 14:57:02,456 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session deb44765-97b9-11e7-9b2d-185e0fec8ce5
> 14:57:02,456 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session de860bda-97b9-11e7-8f5e-185e0fec8ce5
> 14:57:02,456 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session deb44765-97b9-11e7-9b2d-185e0fec8ce5
> 14:57:02,457 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:nixos-45797-1505221021784-1:1:-1
> 14:57:02,457 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:nixos-45797-1505221021784-1:1:-1
> 14:57:02,457 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session de860bda-97b9-11e7-8f5e-185e0fec8ce5
> 14:57:02,474 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:nixos-45797-1505221021784-1:1:1
> 14:57:02,474 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:nixos-45797-1505221021784-1:1:1
> {noformat}



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