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

Reply via email to