Stuck in an infinite loop inside Netty when shutting down NIO client
tsuna
tsunanet at gmail.com
Mon Nov 22 11:46:45 EST 2010
On Mon, Nov 22, 2010 at 2:08 AM, "이희승 (Trustin Lee)" <trustin at gmail.com> wrote:
> This is pretty weird - is it always stuck at IOUtil.drain()?
Hmm, no, actually it seems to be changing over time, but the threads
don't wanna go away.
Other stack traces I've seen:
"New I/O client worker #1-3" prio=10 tid=0x00002aabb0be6800 nid=0x5b3
runnable [0x0000000042250000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x00002aab5fee01c8> (a sun.nio.ch.Util$1)
- locked <0x00002aab5fee01e0> (a java.util.Collections$UnmodifiableSet)
- locked <0x00002aab5fee0138> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:38)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:164)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- <0x00002aab5fea2c58> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"New I/O client worker #1-2" prio=10 tid=0x00002aabb0bcd000 nid=0x5b2
runnable [0x0000000040b14000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.interrupt(Native Method)
at sun.nio.ch.EPollArrayWrapper.interrupt(EPollArrayWrapper.java:256)
at sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:175)
- locked <0x00002aab5fee02f0> (a java.lang.Object)
at java.nio.channels.spi.AbstractSelector$1.interrupt(AbstractSelector.java:193)
at java.nio.channels.spi.AbstractSelector.begin(AbstractSelector.java:198)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:64)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x00002aab5fee0378> (a sun.nio.ch.Util$1)
- locked <0x00002aab5fee0390> (a java.util.Collections$UnmodifiableSet)
- locked <0x00002aab5fee0300> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:38)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:164)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- <0x00002aab5fea2508> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
I put the complete output of a few consecutive calls to jstack -l at
https://gist.github.com/709554#gistcomment-14603 where you can also
see timestamps to see how much time there is between each call.
--
Benoit "tsuna" Sigoure
Software Engineer @ www.StumbleUpon.com
More information about the netty-users
mailing list