-
Bug
-
Resolution: Done
-
Major
-
7.0.0.CR1
-
None
Netty 4.0.32 (in EAP 7.0.0.CR1) sometimes throws NPE:
[startAppServer(bash)] OUT > [33m10:26:23,610 WARN [org.apache.activemq.artemis.core.server] (Thread-12 (activemq-netty-threads-556325121)) AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=0, filter=null, binding=LocalQueueBinding [address=jms.topic.HQ_ProductAnnouncementT, queue=QueueImpl[name=b7e07e97-7b4c-4c58-8b21-7114918b165c, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=07e3d343-024c-11e6-9372-9fd0d2f49032]]@3dd0aaf3, filter=null, name=b7e07e97-7b4c-4c58-8b21-7114918b165c, clusterName=b7e07e97-7b4c-4c58-8b21-7114918b165c07e3d343-024c-11e6-9372-9fd0d2f49032]], message=Reference[27729]:NON-RELIABLE:ServerMessage[messageID=27729,durable=false,userID=dd4b7a8a-024c-11e6-b6b4-d540e70b199a,priority=4, bodySize=2583, timestamp=Thu Apr 14 10:26:23 EDT 2016,expiration=0, durable=false, address=jms.topic.HQ_ProductAnnouncementT,properties=TypedProperties[__AMQ_CID=172.16.10.18_VM3_HQAgent18_5,interactionTimeStamp=1460643983486,senderTimeStamp=1460643983486,bodyCRC=0,senderID=HQ_Interaction6DR_18_EHID_1_TID_50,messageID=0]]@855804372: java.lang.NullPointerException [startAppServer(bash)] OUT > at io.netty.buffer.PoolChunk.initBufWithSubpage(PoolChunk.java:383) [startAppServer(bash)] OUT > at io.netty.buffer.PoolChunk.initBufWithSubpage(PoolChunk.java:369) [startAppServer(bash)] OUT > at io.netty.buffer.PoolArena.allocate(PoolArena.java:194) [startAppServer(bash)] OUT > at io.netty.buffer.PoolArena.allocate(PoolArena.java:132) [startAppServer(bash)] OUT > at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:271) [startAppServer(bash)] OUT > at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:155) [startAppServer(bash)] OUT > at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:146) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.remoting.impl.netty.PartialPooledByteBufAllocator.directBuffer(PartialPooledByteBufAllocator.java:91) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection.createTransportBuffer(NettyServerConnection.java:38) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.createTransportBuffer(AbstractRemotingConnection.java:162) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionReceiveMessage.encode(SessionReceiveMessage.java:59) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.send(ChannelImpl.java:247) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBatched(ChannelImpl.java:226) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback.sendMessage(CoreSessionCallback.java:84) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:889) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:366) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2358) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliverDirect(QueueImpl.java:2343) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.QueueImpl.addTail(QueueImpl.java:539) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addReferences(PostOfficeImpl.java:1189) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.access$000(PostOfficeImpl.java:89) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl$1.done(PostOfficeImpl.java:1046) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:161) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager.afterCompleteOperations(JournalStorageManager.java:671) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1040) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:669) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:573) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1578) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1290) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:429) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:626) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:349) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:331) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:616) [startAppServer(bash)] OUT > at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68) [startAppServer(bash)] OUT > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) [startAppServer(bash)] OUT > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) [startAppServer(bash)] OUT > at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [startAppServer(bash)] OUT > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) [startAppServer(bash)] OUT > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) [startAppServer(bash)] OUT > at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) [startAppServer(bash)] OUT > at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [startAppServer(bash)] OUT > at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [startAppServer(bash)] OUT > at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [startAppServer(bash)] OUT > at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [startAppServer(bash)] OUT > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [startAppServer(bash)] OUT > at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [startAppServer(bash)] OUT > at java.lang.Thread.run(Thread.java:745) [startAppServer(bash)] OUT >
We can see it only SpecJMS2007 runs and it's intermittent. It does not cause any exceptions to be thrown at clients and server can recover from it. Continues as expected. We can only see that once this happens then SpecJMS2007 with given load does not success in sense that server did not handle given load. No other impact was seen.
Based on discussion in [1] this is Netty issue which can be resolved by upgrade to newer version.
- is cloned by
-
JBEAP-4220 (7.0.z) java.lang.NullPointerException - io.netty.buffer.PoolChunk.initBufWithSubpage(PoolChunk.java:383)
- Verified
- is incorporated by
-
JBEAP-4221 (7.1.0) Upgrade Netty to 4.0.33.Final
- Verified