[ 
https://issues.apache.org/jira/browse/ARTEMIS-2282?focusedWorklogId=218626&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-218626
 ]

ASF GitHub Bot logged work on ARTEMIS-2282:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 26/Mar/19 13:35
            Start Date: 26/Mar/19 13:35
    Worklog Time Spent: 10m 
      Work Description: franz1981 commented on issue #2590: ARTEMIS-2282 
QueueImpl::addTail of a management message could throw NPE
URL: https://github.com/apache/activemq-artemis/pull/2590#issuecomment-476638141
 
 
   @michaelandrepearce @k-wall I've added a test (not one of my most brilliant 
one I admit): it is always reproducing the issue, without needing any weird 
concurrent/non-deterministic behaviours :+1: 
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 218626)
    Time Spent: 40m  (was: 0.5h)

> QueueImpl.addTail NPEs during processing of a management message
> ----------------------------------------------------------------
>
>                 Key: ARTEMIS-2282
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2282
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.7.0
>            Reporter: Keith Wall
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
>  We are in the process of upgrading to Artemis 2.7.0 
> ([https://github.com/EnMasseProject/enmasse/pull/2493]).   We notice the 
> following NPE showing in the Artemis logs following a run of our test-suite. 
> Our application sends management messages over AMQP (to activemq.management) 
> to control the Broker and we can see from the stack that it is the processing 
> of these messages that leads to the failure.
> -Our test suite is passing and as far as we can tell, there is no functional 
> defect.- (Correction, we are seeing failures [updated :2019-03-25]),
> Could this be related to the recent work of ARTEMIS-1710?
>  
> 2019-03-22T21:42:15.150Z WARN [ProtonServerReceiverContext] null: 
> java.lang.NullPointerException
>  at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.addTail(QueueImpl.java:898)
>  at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.internalprocessReferences(RoutingContextImpl.java:138)
>  at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.processReferences(RoutingContextImpl.java:133)
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl$2.done(PostOfficeImpl.java:1370)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:189)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:130)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.afterCompleteOperations(AbstractJournalStorageManager.java:323)
>  at org.apac2019-03-22T21:42:15.150Z WARN [ProtonServerReceiverContext] null: 
> java.lang.NullPointerException
>  at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.addTail(QueueImpl.java:898)
>  at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.internalprocessReferences(RoutingContextImpl.java:138)
> iv at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.processReferences(RoutingContextImpl.java:133)
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl$2.done(PostOfficeImpl.java:1370)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:189)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:130)
>  at 
> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.afterCompleteOperations(AbstractJournalStorageManager.java:323)
> emq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1362)
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:976)
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:867)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1972)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.handleManagementMessage(ServerSessionImpl.java:1857)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1613)
>  at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:510)
>  at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:470)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.actualDelivery(Proton
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1362)
>  at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:976)
> ServerReceiverContext.java:30 at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:867)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1972)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.handleManagementMessage(ServerSessionImpl.java:1857)
>  at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1613)
>  at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:510)
>  at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:470)
> 4)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:299)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:541)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:484)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:284)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:241)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:170)
>  at org.apache.activemq.artemis.protocol.a at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.actualDelivery(ProtonServerReceiverContext.java:304)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:299)
> mqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:149)
>  at org.apache.activemq.artemis at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:541)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:484)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:284)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:241)
>  at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:170)
>  at 
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:149)
> .integration.amqp.ProtonClientConnectionManager.bufferReceived(ProtonClientConnectionManager.java:107)
>  at 
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
>  at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1476)
>  at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1225)
>  at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1272)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
>  at io.netty.handler.codec.ByteToMessageDecoder.cal at 
> org.apache.activemq.artemis.integration.amqp.ProtonClientConnectionManager.bufferReceived(ProtonClientConnectionManager.java:107)
>  at 
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
>  at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1476)
>  at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1225)
>  at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1272)
> lDecode(ByteToMessageDecoder.java:441)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
>  at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
>  at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> at at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
>  at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
>  at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
>  at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
>  at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
>  at 
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
>  at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  at 
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
>  at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
>  at 
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
>  at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to