Uploaded image for project: 'Netty'
  1. Netty
  2. NETTY-424

java.lang.OutOfMemoryError: Direct buffer memory

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.2.2.Final
    • Fix Version/s: None
    • Component/s: Bootstrap
    • Labels:
      None
    • Environment:

      Linux 2.6.18-128.el5xen
      Java HotSpot(TM) 64-Bit Server VM 1.6.0_18-b07

      Description

      • Test:

        for (int i = 0; i < Integer.MAX_VALUE; i ++) {
            ChannelFactory channelFactory = new NioClientSocketChannelFactory(
                    Executors.newCachedThreadPool(), Executors.newCachedThreadPool());
            Bootstrap bootstrap = new ClientBootstrap(channelFactory);
            bootstrap.setPipelineFactory(new ChannelPipelineFactory() { ... });
            ChannelFuture future = bootstrap.connect(serverAddress);
            future.await(); // or future.addListener(new ChannelFutureListener() { ... }); 
            Channel channel = future.getChannel();
            channel.close();
            // FIXME NioClientSocketChannelFactory direct buffer memory leak
            channelFactory.releaseExternalResources(); // or bootstrap.releaseExternalResources();
        }
        

      • Circumvent:
        static NioClientSocketChannelFactory
      • Exception:

        Caused by: java.lang.OutOfMemoryError: Direct buffer memory
        at java.nio.Bits.reserveMemory(Bits.java:633)
        at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:95)
        at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
        at org.jboss.netty.channel.socket.nio.SocketSendBufferPool$Preallocation.<init>(SocketSendBufferPool.java:159)
        at org.jboss.netty.channel.socket.nio.SocketSendBufferPool.<init>(SocketSendBufferPool.java:46)
        at org.jboss.netty.channel.socket.nio.NioWorker.<init>(NioWorker.java:84)
        at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.<init>(NioClientSocketPipelineSink.java:74)
        at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(NioClientSocketChannelFactory.java:135)

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                trustin Trustin Lee
                Reporter:
                liangfei0201 liangfei liang
              • Votes:
                4 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated: