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

clebert suconic reopened ARTEMIS-1416:
--------------------------------------

> 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)

Reply via email to