New Exception with CR1 preventing a full shutdown

"이희승 (Trustin Lee)" trustin at gmail.com
Tue Jun 23 22:55:42 EDT 2009


Hi Ian,

I've just checked in the fix at revision 1493.  Could you confirm that
my fix works for you?

And here's the related JIRA issue:

  * https://jira.jboss.org/jira/browse/NETTY-182

Thanks!

On 2009-06-24 오전 8:48, Ian Swett wrote:
> 
> I think the reason it is not exiting is actually my fault, because I'm blocking on LinkedBlockingQueue.take() forever in the last thread, and I believe the original error/stack trace is causing me not to get the response I'm expecting.  
> 
> Here is the jstack output:
> 
> Debugger attached successfully.
> Client compiler detected.
> JVM version is 1.5.0_19-137
> Deadlock Detection:
> 
> No deadlocks found.
> 
> Thread t at 60931: (state = IN_NATIVE)
>  - sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
>  - sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
>  - sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
>  - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
>  - sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
>  - org.jboss.netty.channel.socket.nio.NioWorker.run() @bci=60, line=165 (Interpreted frame)
>  - org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
>  - org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
>  - java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
>  - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
>  - java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
> 
> 
> Thread t at 64003: (state = IN_NATIVE)
>  - sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
>  - sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
>  - sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
>  - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
>  - sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
>  - sun.nio.ch.ServerSocketAdaptor.accept() @bci=165, line=105 (Interpreted frame)
>  - org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run() @bci=10, line=215 (Interpreted frame)
>  - org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
>  - org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
>  - java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
>  - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
>  - java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
> 
> 
> Thread t at 66051: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>  - java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
>  - java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)
> 
> 
> Thread t at 66307: (state = IN_NATIVE)
>  - java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Interpreted frame)
>  - java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Interpreted frame)
>  - java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
>  - java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
>  - org.mortbay.jetty.bio.SocketConnector.accept(int) @bci=4, line=99 (Interpreted frame)
>  - org.mortbay.jetty.AbstractConnector$Acceptor.run() @bci=151, line=707 (Interpreted frame)
>  - org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=520 (Interpreted frame)
> 
> 
> Thread t at 66563: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>  - org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=275, line=563 (Interpreted frame)
> 
> 
> Thread t at 66819: (state = IN_NATIVE)
>  - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame)
>  - java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Interpreted frame)
>  - sun.nio.cs.StreamDecoder$CharsetSD.readBytes() @bci=130, line=411 (Interpreted frame)
>  - sun.nio.cs.StreamDecoder$CharsetSD.implRead(char[], int, int) @bci=112, line=453 (Interpreted frame)
>  - sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=180, line=183 (Interpreted frame)
>  - java.io.InputStreamReader.read(char[], int, int) @bci=7, line=167 (Interpreted frame)
>  - java.io.BufferedReader.fill() @bci=145, line=136 (Interpreted frame)
>  - java.io.BufferedReader.readLine(boolean) @bci=44, line=299 (Compiled frame)
>  - java.io.BufferedReader.readLine() @bci=2, line=362 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run() @bci=9, line=140 (Interpreted frame)
> 
> 
> Thread t at 68099: (state = BLOCKED)
> 
> 
> Thread t at 68355: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>  - java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
>  - java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
>  - java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)
> 
> 
> Thread t at 68611: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>  - java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
>  - java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)
> 
> 
> Thread t at 68867: (state = BLOCKED)
>  - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
>  - java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
>  - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
>  - java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
>  - com.appliedminds.mql.MQLServer.start() @bci=4, line=406 (Interpreted frame)
>  - junit.framework.TestCase.runBare() @bci=3, line=128 (Interpreted frame)
>  - junit.framework.TestResult$1.protect() @bci=4, line=106 (Interpreted frame)
>  - junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=124 (Interpreted frame)
>  - junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=109 (Interpreted frame)
>  - junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=120 (Interpreted frame)
>  - junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=230 (Interpreted frame)
>  - junit.framework.TestSuite.run(junit.framework.TestResult) @bci=37, line=225 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=40, line=130 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[]) @bci=17, line=38 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[], java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=61, line=460 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=10, line=673 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() @bci=70, line=386 (Interpreted frame)
>  - org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[]) @bci=14, line=196 (Interpreted frame)
> 
> 
> 
> 
> ----- Original Message ----
> From: 이희승 (Trustin Lee) <trustin at gmail.com>
> To: netty-users at lists.jboss.org
> Sent: Tuesday, June 23, 2009 10:54:06 AM
> Subject: Re: New Exception with CR1 preventing a full shutdown
> 
> Hi Ian,
> 
> Thanks for reporting the problem.  This bug has been triggered by the
> side effect of AIX bug fix.  Could you post the full thread dump when it
> does not shut down? (i.e. two servers in one vm case)
> 
> 
> On 2009-06-24 오전 2:29, Ian Swett wrote:
>>
>> I get the following exception at a point during startup.  The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit.  Sometimes I do not get this exception, and then everything goes smoothly.  I verified that when I switch back to Beta3, this problem never occurs.  
>>
>> I am running two Netty servers in the same JVM.  When I only run one, this exception still occurs, but the JVM shuts down cleanly.
>>
>> Exception in thread "pool-1-thread-1" java.nio.channels.ClosedSelectorException
>>     at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
>>     at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
>>     at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
>>     at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
>>     at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
>>     at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
>>     at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
>>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
>>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
>>     at java.lang.Thread.run(Thread.java:613)
>>
>> This is on MacOSX 10.5.7 with JDK 1.5.
>>
>> Thanks, Ian
>>
>>
>>
>>      
>> _______________________________________________
>> netty-users mailing list
>> netty-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/netty-users
> 
> 


-- 
— Trustin Lee, http://gleamynode.net/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
Url : http://lists.jboss.org/pipermail/netty-users/attachments/20090624/30d0aaff/attachment.bin 


More information about the netty-users mailing list