{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/327","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/327/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/327/comments","events_url":"https://api.github.com/repos/netty/netty/issues/327/events","html_url":"https://github.com/netty/netty/issues/327","id":4603954,"number":327,"title":"EPollArrayWrapper.epollWait 100% CPU Usage","user":{"login":"blucas","id":1743698,"avatar_url":"https://avatars.githubusercontent.com/u/1743698?v=3","gravatar_id":"","url":"https://api.github.com/users/blucas","html_url":"https://github.com/blucas","followers_url":"https://api.github.com/users/blucas/followers","following_url":"https://api.github.com/users/blucas/following{/other_user}","gists_url":"https://api.github.com/users/blucas/gists{/gist_id}","starred_url":"https://api.github.com/users/blucas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blucas/subscriptions","organizations_url":"https://api.github.com/users/blucas/orgs","repos_url":"https://api.github.com/users/blucas/repos","events_url":"https://api.github.com/users/blucas/events{/privacy}","received_events_url":"https://api.github.com/users/blucas/received_events","type":"User","site_admin":false},"labels":[{"id":185727,"url":"https://api.github.com/repos/netty/netty/labels/defect","name":"defect","color":"e11d21","default":false}],"state":"closed","locked":false,"assignee":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"assignees":[{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/netty/netty/milestones/26","html_url":"https://github.com/netty/netty/milestones/3.5.7.Final","labels_url":"https://api.github.com/repos/netty/netty/milestones/26/labels","id":167164,"number":26,"title":"3.5.7.Final","description":"","creator":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":5,"state":"closed","created_at":"2012-08-29T09:45:34Z","updated_at":"2013-09-05T14:38:29Z","due_on":"2012-09-05T07:00:00Z","closed_at":"2012-09-03T20:03:06Z"},"comments":50,"created_at":"2012-05-16T13:02:07Z","updated_at":"2016-11-21T21:12:03Z","closed_at":"2012-09-03T19:24:47Z","body":"Hi,\n\nI believe I have an issue similar to #302 but on Linux (Ubuntu 10.04) with JDK (1.6.0u30) and JDK(1.7.0u4) using Netty-4.0.0 (Revision: 52a7d28cb59e3806fda322aecf7a85a6adaeb305)\n\nThe app is proxying connections to backend systems.  The proxy has a pool of channels that it can use to send requests to the backend systems.  If the pool is low on channels, new channels are spawned and put into the pool so that requests sent to the proxy can be serviced.  The pools get populated on app startup, so that is why it doesn't take long at all for the CPU to spike through the roof (22 seconds into the app lifecycle).\n\nThe test box has two CPUs, the output from 'top' is below:\n\n```\nPID  USER   PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND\n8220 root   20   0 2281m 741m  10m R 50.2 18.7  0:22.57 java                                                                             \n8218 root   20   0 2281m 741m  10m R 49.9 18.7  0:22.65 java                                                                             \n8219 root   20   0 2281m 741m  10m R 49.2 18.7  0:22.86 java                                                                             \n8221 root   20   0 2281m 741m  10m R 49.2 18.7  0:22.20 java \n```\n\nThread Dump for the four NioClient based Worker Threads that are chewing up all the CPU.\n\n```\n\"backend-worker-pool-7-thread-1\" prio=10 tid=0x00007f5918015800 nid=0x201a runnable [0x00007f5924ba3000]\n   java.lang.Thread.State: RUNNABLE\n    at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)\n    at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)\n    at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)\n    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\n    - locked <0x000000008be93580> (a sun.nio.ch.Util$2)\n    - locked <0x000000008be93570> (a java.util.Collections$UnmodifiableSet)\n    - locked <0x000000008be92548> (a sun.nio.ch.EPollSelectorImpl)\n    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\n    at io.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:55)\n    at io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:261)\n    at io.netty.channel.socket.nio.NioWorker.run(NioWorker.java:37)\n    at io.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:43)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\n    at java.lang.Thread.run(Thread.java:662)   Locked ownable synchronizers:    - <0x000000008be00748> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)\n```\n\n```\n\"backend-worker-pool-7-thread-2\" prio=10 tid=0x00007f5918012000 nid=0x201b runnable [0x00007f5924b82000]\n   java.lang.Thread.State: RUNNABLE\n    at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)\n    at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)\n    at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)\n    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\n    - locked <0x000000008be94a28> (a sun.nio.ch.Util$2)\n    - locked <0x000000008be94a18> (a java.util.Collections$UnmodifiableSet)\n    - locked <0x000000008be90648> (a sun.nio.ch.EPollSelectorImpl)\n    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\n    at io.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:55)\n    at io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:261)\n    at io.netty.channel.socket.nio.NioWorker.run(NioWorker.java:37)\n    at io.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:43)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\n    at java.lang.Thread.run(Thread.java:662)   Locked ownable synchronizers:    - <0x000000008be904c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)\n```\n\n```\n\"backend-worker-pool-7-thread-3\" prio=10 tid=0x00007f5918007800 nid=0x201c runnable [0x00007f5924b61000]\n   java.lang.Thread.State: RUNNABLE\n    at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)\n    at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)\n    at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)\n    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\n    - locked <0x000000008be952e0> (a sun.nio.ch.Util$2)\n    - locked <0x000000008be952d0> (a java.util.Collections$UnmodifiableSet)\n    - locked <0x000000008be8f858> (a sun.nio.ch.EPollSelectorImpl)\n    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\n    at io.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:55)\n    at io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:261)\n    at io.netty.channel.socket.nio.NioWorker.run(NioWorker.java:37)\n    at io.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:43)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\n    at java.lang.Thread.run(Thread.java:662)   Locked ownable synchronizers:    - <0x000000008be8f618> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)\n```\n\n```\n\"backend-worker-pool-7-thread-4\" prio=10 tid=0x00007f5918019000 nid=0x201d runnable [0x00007f5924b40000]\n   java.lang.Thread.State: RUNNABLE\n    at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)\n    at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)\n    at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)\n    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\n    - locked <0x000000008be003f8> (a sun.nio.ch.Util$2)\n    - locked <0x000000008be003e8> (a java.util.Collections$UnmodifiableSet)\n    - locked <0x000000008be00408> (a sun.nio.ch.EPollSelectorImpl)\n    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\n    at io.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:55)\n    at io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:261)\n    at io.netty.channel.socket.nio.NioWorker.run(NioWorker.java:37)\n    at io.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:43)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\n    at java.lang.Thread.run(Thread.java:662)   Locked ownable synchronizers:    - <0x000000008be004e0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)\n```\n"},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/262068512","html_url":"https://github.com/netty/netty/issues/327#issuecomment-262068512","issue_url":"https://api.github.com/repos/netty/netty/issues/327","id":262068512,"user":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"created_at":"2016-11-21T21:12:03Z","updated_at":"2016-11-21T21:12:03Z","body":"@hbprotoss @kupci can any of you share a reproducer maybe ?"}}
{"actor":{"display_login":"normanmaurer"}}