You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/07/25 06:39:00 UTC

[jira] [Commented] (THRIFT-4251) Epoll Selector Bug

    [ https://issues.apache.org/jira/browse/THRIFT-4251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16099579#comment-16099579 ] 

ASF GitHub Bot commented on THRIFT-4251:
----------------------------------------

GitHub user Johnny-Liao opened a pull request:

    https://github.com/apache/thrift/pull/1313

    THRIFT-4251 Fix JDK Epoll Bug in Thrift of TThreadedSelectorServer model.

    Such as the title. More information see : https://issues.apache.org/jira/browse/THRIFT-4251

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/Johnny-Liao/thrift THRIFT-4251

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1313.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1313
    
----
commit 4dc1eb98e4b750a25ba0ed64c207fd64f24a7f31
Author: Johnny-Liao <10...@qq.com>
Date:   2017-07-25T06:23:28Z

    THRIFT-4251 Fix JDK Epoll Bug in Thrift of TThreadedSelectorServer model.

----


> Epoll Selector Bug
> ------------------
>
>                 Key: THRIFT-4251
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4251
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Compiler, Java - Library
>    Affects Versions: 0.10.0
>         Environment: Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org)
> java version "1.8.0_131"
>            Reporter: JohnnyLiao
>              Labels: epoll, jdk, selector
>
> Thrift java unsolve the infamous epoll bug. It's consum 100% cpu resource when this occured. It seems to affect any NIO based Java server applications running in the specified environment. Some projects provide workarounds for similar JDK bugs, for example replaces the current Selector of this SelectorThread.select with newly created Selector.
> Stack Traceļ¼š
> "Thread-46" #95 prio=5 os_prio=0 tid=0x00007fc79cd02800 nid=0xb1 runnable [0x00007fc580bd1000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
>         at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
>         at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
>         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
>         - locked <0x000000008012f748> (a sun.nio.ch.Util$3)
>         - locked <0x000000008012f738> (a java.util.Collections$UnmodifiableSet)
>         - locked <0x0000000080120f58> (a sun.nio.ch.EPollSelectorImpl)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)
>         at org.apache.thrift.server.TThreadedSelectorServer$SelectorThread.select(TThreadedSelectorServer.java:570)
>         at org.apache.thrift.server.TThreadedSelectorServer$SelectorThread.run(TThreadedSelectorServer.java:541)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)