Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-6056

(7.1.0) java.lang.NullPointerException - io.netty.buffer.PoolChunk.initBufWithSubpage(PoolChunk.java:383)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.1.0.DR5
    • 7.0.0.CR1
    • ActiveMQ
    • 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.

      [1] https://issues.jboss.org/browse/JBEAP-4203?focusedCommentId=13192414&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13192414

              rh-ee-ataylor Andy Taylor
              chaowan@redhat.com Chao Wang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: