[
https://issues.apache.org/jira/browse/TAJO-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13728464#comment-13728464
]
Hyunsik Choi commented on TAJO-103:
-----------------------------------
Actually, I didn't know that. Thank you for your nice finding.
> netty worker not released after server closed
> ---------------------------------------------
>
> Key: TAJO-103
> URL: https://issues.apache.org/jira/browse/TAJO-103
> Project: Tajo
> Issue Type: Bug
> Components: master, rpc
> Affects Versions: 0.2-incubating
> Reporter: hyoungjunkim
> Priority: Minor
>
> In current implementation shutdown() method in NettyServerBase class doesn't
> release socket resource.
> After invoke shutdown() method, bellow threads are running.
> NettyServerBase must call factoy's releaseExternalResources() method To
> release socket resource and worker(netty document
> http://netty.io/3.5/guide/#start.12).
> {code}
> "New I/O worker #16" prio=5 tid=7f944eb0b800 nid=0x11911c000 runnable
> [11911b000]
> java.lang.Thread.State: RUNNABLE
> at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
> at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136)
> at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)
> at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
> - locked <7f46c5428> (a sun.nio.ch.Util$2)
> - locked <7f46c5440> (a java.util.Collections$UnmodifiableSet)
> - locked <7f4562540> (a sun.nio.ch.KQueueSelectorImpl)
> at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
> at
> org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
> at
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
> at
> org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
> at
> org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:680)
> "New I/O worker #15" prio=5 tid=7f944eaf9800 nid=0x119019000 runnable
> [119018000]
> java.lang.Thread.State: RUNNABLE
> at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
> at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136)
> at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)
> at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
> - locked <7f467c930> (a sun.nio.ch.Util$2)
> - locked <7f467c948> (a java.util.Collections$UnmodifiableSet)
> - locked <7f466ba30> (a sun.nio.ch.KQueueSelectorImpl)
> at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
> at
> org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
> at
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
> at
> org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
> at
> org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:680)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira