[ 
https://issues.apache.org/jira/browse/DIRMINA-678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny updated DIRMINA-678:
--------------------------------------

    Fix Version/s:     (was: 2.0.0)
                   2.0.0-RC1

Move to 2.0-RC1.

I'm afraid the solution will be something like the one implemented in Tomcat 
and Grizzly : kill the selector, and register all the keys again on a new 
selector. No fun :/

> NioProcessor 100% CPU usage on Linux (epoll selector bug)
> ---------------------------------------------------------
>
>                 Key: DIRMINA-678
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-678
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-M4
>         Environment: CentOS 5.x, 32/64-bit, 32/64-bit Sun JDK 1.6.0_12, also 
> _11/_10/_09 and Sun JDK 1.7.0 b50, Kernel 2.6.18-92.1.22.el5 and also older 
> versions,
>            Reporter: Serge Baranov
>             Fix For: 2.0.0-RC1
>
>         Attachments: snap973.png, snap974.png
>
>
> It's the same bug as described at http://jira.codehaus.org/browse/JETTY-937 , 
> but affecting MINA in the very similar way.
> NioProcessor threads start to eat 100% resources per CPU. After 10-30 minutes 
> of running depending on the load (sometimes after several hours) one of the 
> NioProcessor starts to consume all the available CPU resources probably 
> spinning in the epoll select loop. Later, more threads can be affected by the 
> same issue, thus 100% loading all the available CPU cores.
> Sample trace:
> NioProcessor-10 [RUNNABLE] CPU time: 5:15
> sun.nio.ch.EPollArrayWrapper.epollWait(long, int, long, int)
> sun.nio.ch.EPollArrayWrapper.poll(long)
> sun.nio.ch.EPollSelectorImpl.doSelect(long)
> sun.nio.ch.SelectorImpl.lockAndDoSelect(long)
> sun.nio.ch.SelectorImpl.select(long)
> org.apache.mina.transport.socket.nio.NioProcessor.select(long)
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run()
> org.apache.mina.util.NamePreservingRunnable.run()
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> java.util.concurrent.ThreadPoolExecutor$Worker.run()
> java.lang.Thread.run()
> It seems to affect any NIO based Java server applications running in the 
> specified environment.
> Some projects provide workarounds for similar JDK bugs, probably MINA can 
> also think about a workaround.
> As far as I know, there are at least 3 users who experience this issue with 
> Jetty and all of them are running CentOS (some distribution default setting 
> is a trigger?). As for MINA, I'm not aware of similar reports yet.

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

Reply via email to