[
https://issues.apache.org/jira/browse/ARTEMIS-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
clebert suconic updated ARTEMIS-1416:
-------------------------------------
Fix Version/s: 2.5.0
> 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
> Fix For: 2.5.0
>
>
> # 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)