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

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.1.0.DR5
    • 7.0.0.CR1
    • ActiveMQ
    • None

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: