You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Jane Prusakova (JIRA)" <ji...@apache.org> on 2008/04/25 20:05:56 UTC

[jira] Created: (DIRMINA-576) java.lang.OutOfMemoryError in Direct buffers

java.lang.OutOfMemoryError  in Direct buffers
---------------------------------------------

                 Key: DIRMINA-576
                 URL: https://issues.apache.org/jira/browse/DIRMINA-576
             Project: MINA
          Issue Type: Bug
          Components: Core
         Environment: SunOS [box] 5.10 Generic_120011-14 sun4v sparc SUNW,Sun-Fire-T200

java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Server VM (build 1.5.0_12-b04, mixed mode)

Discovered using MINA 1.1.2
            Reporter: Jane Prusakova


The problem showed up after MINA-based server has been running for ~100hours, including a few hours at the peak load. 
OutOfMemoryError has been logged 300000 times in a span of few minutes, then servers crashed.    This scenario happened on several dozen boxes at the same time, with the same load. 

java.lang.OutOfMemoryError
        at sun.misc.Unsafe.allocateMemory(Native Method)
        at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:99)
        at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
        at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:57)
        at sun.nio.ch.IOUtil.read(IOUtil.java:205)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
        at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:201)
        at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:181)
        at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:44)

-XX:MaxDirectMemorySize has not been set, it was running with the default value (64MB). 
The load peaked 24hours before the errors started to show up, at the time of the crash the load on the servers has been at ~60% of the peak load. 

We contacted Sun regarding this issue, and they pointed out RFE 6296278: 
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6296278
There is a workaround suggested to make ByteBuffer release its memory w/o waiting for GC.  
Is this addressed in the latest releases of MINA? 

thanks


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (DIRMINA-576) java.lang.OutOfMemoryError in Direct buffers

Posted by "Edouard De Oliveira (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DIRMINA-576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Edouard De Oliveira closed DIRMINA-576.
---------------------------------------

    Resolution: Invalid

As you state, this is a jdk bug we cannot circumvent as long as we know. 
Maybe NIO2 will fix it.

> java.lang.OutOfMemoryError  in Direct buffers
> ---------------------------------------------
>
>                 Key: DIRMINA-576
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-576
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>         Environment: SunOS [box] 5.10 Generic_120011-14 sun4v sparc SUNW,Sun-Fire-T200
> java version "1.5.0_12"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
> Java HotSpot(TM) Server VM (build 1.5.0_12-b04, mixed mode)
> Discovered using MINA 1.1.2
>            Reporter: Jane Prusakova
>
> The problem showed up after MINA-based server has been running for ~100hours, including a few hours at the peak load. 
> OutOfMemoryError has been logged 300000 times in a span of few minutes, then servers crashed.    This scenario happened on several dozen boxes at the same time, with the same load. 
> java.lang.OutOfMemoryError
>         at sun.misc.Unsafe.allocateMemory(Native Method)
>         at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:99)
>         at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
>         at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:57)
>         at sun.nio.ch.IOUtil.read(IOUtil.java:205)
>         at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
>         at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:201)
>         at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:181)
>         at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:44)
> -XX:MaxDirectMemorySize has not been set, it was running with the default value (64MB). 
> The load peaked 24hours before the errors started to show up, at the time of the crash the load on the servers has been at ~60% of the peak load. 
> We contacted Sun regarding this issue, and they pointed out RFE 6296278: 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6296278
> There is a workaround suggested to make ByteBuffer release its memory w/o waiting for GC.  
> Is this addressed in the latest releases of MINA? 
> thanks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.