Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-7655

java.lang.OutOfMemoryError: Direct buffer memory

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • EAP_EWP 5.1.2 CR3
    • EAP_EWP 5.1.2 CR1, EAP_EWP 5.1.2 CR2
    • HornetQ
    • None
    • RHEL 6, Messaging lab, journal on SAN

    • Not Yet Documented
    • NEW

      Hi Clebert,

      we hit OutOfMemoryError during our testing. I am putting this JIRA to low priority and TBD EAP 5 because we are not able to reproduce it. It seems that it is more Netty problem. See NETTY-424. Could you check it, please? Does make sense to spend more time on this issue? Thanks.

      java.lang.OutOfMemoryError: Direct buffer memory
              at java.nio.Bits.reserveMemory(Bits.java:633)
              at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:98)
              at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
              at org.hornetq.core.paging.impl.PageImpl.read(PageImpl.java:119)
              at org.hornetq.core.paging.cursor.impl.PageCursorProviderImpl.getPageCache(PageCursorProviderImpl.java:188)
              at org.hornetq.core.paging.cursor.impl.PageCursorProviderImpl.getPageCache(PageCursorProviderImpl.java:140)
              at org.hornetq.core.paging.cursor.impl.PageCursorProviderImpl.getMessage(PageCursorProviderImpl.java:117)
              at org.hornetq.core.paging.cursor.impl.PageSubscriptionImpl.queryMessage(PageSubscriptionImpl.java:527)
              at org.hornetq.core.paging.cursor.PagedReferenceImpl.getPagedMessage(PagedReferenceImpl.java:73)
              at org.hornetq.core.paging.cursor.impl.PageSubscriptionImpl.getPageTransaction(PageSubscriptionImpl.java:836)
              at org.hornetq.core.paging.cursor.impl.PageSubscriptionImpl.ackTx(PageSubscriptionImpl.java:440)
              at org.hornetq.core.server.impl.QueueImpl.acknowledge(QueueImpl.java:892)
              at org.hornetq.core.server.impl.ServerConsumerImpl.acknowledge(ServerConsumerImpl.java:622)
              at org.hornetq.core.server.impl.ServerSessionImpl.acknowledge(ServerSessionImpl.java:583)
              at org.hornetq.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:270)
              at org.hornetq.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:504)
              at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:538)
              at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:499)
              at org.hornetq.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:512)
              at org.hornetq.core.remoting.impl.netty.HornetQChannelHandler.messageReceived(HornetQChannelHandler.java:73)
              at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
              at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:362)
              at org.jboss.netty.channel.StaticChannelPipeline$StaticChannelHandlerContext.sendUpstream(StaticChannelPipeline.java:514)
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:287)
              at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.decode(HornetQFrameDecoder2.java:169)
              at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.messageReceived(HornetQFrameDecoder2.java:134)
              at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
              at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:362)
              at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:357)
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
              at org.jboss.netty.channel.socket.oio.OioWorker.run(OioWorker.java:90)
              at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
              at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
              at org.jboss.netty.util.VirtualExecutorService$ChildExecutorRunnable.run(VirtualExecutorService.java:181)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java.lang.Thread.run(Thread.java:662)
      

      Configuration & scenario:

      • standard EAP configuration 1.3 GB, 10 MB per queue for HornetQ and PAGE policy (1 MB pages)
      • Topic with one producer and 10 consumer with durable subscription (there is gap between consumers)
      • 10000 bin messages, each 25kB

        1. diff.patch
          2 kB
          Clebert Suconic

              rdickens_jira Russell Dickenson (Inactive)
              pslavice@redhat.com Pavel Slavicek
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: