New Exception with CR1 preventing a full shutdown

Ian Swett iswett at yahoo.com
Wed Jun 24 00:47:50 EDT 2009


1494 works for me, and I don't see any new problems.

Thanks, Ian



----- Original Message ----
From: 이희승 (Trustin Lee) <trustin at gmail.com>
To: netty-users at lists.jboss.org
Sent: Tuesday, June 23, 2009 8:01:08 PM
Subject: Re: New Exception with CR1 preventing a full shutdown

It's revision 1494 actually. :)

On 2009-06-24 오전 11:55, "이희승 (Trustin Lee) wrote:
> 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
>>
>>
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> netty-users mailing list
> netty-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-users


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


      




More information about the netty-users mailing list