[
https://issues.apache.org/jira/browse/ARTEMIS-1330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118180#comment-16118180
]
Jiri Danek commented on ARTEMIS-1330:
-------------------------------------
{{org.apache.activemq.artemis.tests.integration.amqp.AmqpFlowControlTest#testAddressIsBlockedForOtherProdudersWhenFull}}
Core: no exception is thrown on last send (not ResourceAllocationException nor
anything else), but contition addressSize >= MAX_SIZE_BYTES_REJECT_THRESHOLD is
true.
OpenWire: The test is killed by JUnit timeout, there are two broker exceptions
in the log
{noformat}
[Thread-1 (activemq-netty-threads)] 18:14:10,755 ERROR
[org.apache.activemq.artemis.core.server] AMQ224048: Failed to remove temporary
queue 3693b650-d0f6-4b12-8dd2-c9e2adadc01d: java.lang.NullPointerException
at
org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.unregisterQueue(ManagementServiceImpl.java:260)
[:]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.removeBinding(PostOfficeImpl.java:581)
[:]
at
org.apache.activemq.artemis.core.server.impl.QueueImpl.deleteQueue(QueueImpl.java:1487)
[:]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1745)
[:]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1702)
[:]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1682)
[:]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.run(ServerSessionImpl.java:673)
[:]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.connectionFailed(ServerSessionImpl.java:688)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.callFailureListeners(OpenWireConnection.java:416)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:578)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:392)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager.removeConnection(OpenWireProtocolManager.java:170)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.fail(OpenWireConnection.java:615)
[:]
at
org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:210)
[:]
at
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.connectionDestroyed(RemotingServiceImpl.java:542)
[:]
at
org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor$Listener.connectionDestroyed(NettyAcceptor.java:753)
[:]
at
org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelInactive(ActiveMQChannelHandler.java:78)
[:]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:360)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:325)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1329)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:908)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:744)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
[Thread-1 (activemq-netty-threads)] 18:14:10,757 WARN
[org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Failed
to fire advisory on topic://ActiveMQ.Advisory.TempQueue:
java.lang.NullPointerException
at
org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:348)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager.fireAdvisory(OpenWireProtocolManager.java:386)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager.fireAdvisory(OpenWireProtocolManager.java:336)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.tempQueueDeleted(OpenWireConnection.java:857)
[:]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.run(ServerSessionImpl.java:675)
[:]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.connectionFailed(ServerSessionImpl.java:688)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.callFailureListeners(OpenWireConnection.java:416)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:578)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:392)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager.removeConnection(OpenWireProtocolManager.java:170)
[:]
at
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.fail(OpenWireConnection.java:615)
[:]
at
org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:210)
[:]
at
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.connectionDestroyed(RemotingServiceImpl.java:542)
[:]
at
org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor$Listener.connectionDestroyed(NettyAcceptor.java:753)
[:]
at
org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelInactive(ActiveMQChannelHandler.java:78)
[:]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:360)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:325)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1329)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:908)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:744)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
{noformat}
AMQP: pass
reproducibility of failures: always, except the error messages on OpenWire,
which show in say 20%; the test fails always, but message sometimes does not
appear
> [DISCUSS] Run JMS tests over many protocols (through different JMS client
> libraries)
> ------------------------------------------------------------------------------------
>
> Key: ARTEMIS-1330
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1330
> Project: ActiveMQ Artemis
> Issue Type: Test
> Components: AMQP, OpenWire
> Affects Versions: 2.3.0
> Reporter: Jiri Danek
> Priority: Minor
>
> Currently, there are three sets of JMS tests in Apache ActiveMQ Artemis
> codebase (that I know of)
> *
> activemq-artemis/tests/jms-tests/src/test/java/org/apache/activemq/artemis/jms/tests/*
> *
> activemq-artemis/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/*
> *
> activemq-artemis/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/*
> The first two are being run only through the Core JMS client, while the last
> one is being run through Qpid JMS client (with few exceptions).
> It should be beneficial to be able to run all JMS tests through all three
> protocols that Artemis supports that have a JMS client, these being
> * Core (artemis-jms-client),
> * OpenWire (activemq-client), and
> * AMQP (qpid-jms-client).
> I made an attempt to convert some of the tests to a parametrized test with
> changeable connection factory. The way
> {{org.apache.activemq.artemis.tests.integration.persistence.SyncSendTest}}
> currently does it. See https://github.com/jdanekrh/activemq-artemis/pull/4
> There are the following obstackes
> * Some tests go beyond the JMS standardized APIs and cast the JMS object to
> specific implementations in their chosen library.
> * Some tests require specific settings on the connection factory, these are
> not portable across different JMS clients. There will have to be branching
> depending on the specific factory currently in use, or something...
> * OpenWire client supports JMS 1.1, while Core and AMQP clients are JMS 2.0,
> some tests will have to be skipped on OpenWire
> * OpenWire client has different semantics of {{receiver.receiveNoWait()}}
> call; when there are no messages in prefetch cache, OpenWire returns null,
> while other clients do a round trip to server to check for new messages
> before giving up.
> There are some improvements which can be considered later, some of these are
> partially implemented in various places
> * share broker between individual tests
> * use random name or random suffix for created addresses and queues use
> suffix for queues/topics to ensure isolation
> * have broker uberconfig for all tests, or group tests by config they need,
> so that reconfiguring broker is limited
> * that also allows tests to run in parallel
> * use random port for acceptor on broker, can run tests even more parallel,
> and mitigates environmentally caused failures
> I intend to report the failures I found so far (see the code at the link
> above) and I am reasonably certain they are actual failures. The rest I plan
> to note in comments here, one test per comment.
> If you happen to have any comments and suggestions how to do this better, I'd
> be glad to hear them.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)