Jiri Danek created ARTEMIS-1416:
-----------------------------------

             Summary: 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
            Reporter: Jiri Danek


# 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