2013-01-17 41 views
0

我不知道它是netty 3.2.7.Final錯誤。問題是,在客戶端(使用SecureChatClient)出乎意料地,在recv-q中增加了接收來自服務器端(使用SecureChatServer)的實時消息的數據包。 我猜在應用程序級讀取數據包時出現死鎖。在內核recv-q中增加客戶端數據包(用netstat確認)而不是讀取數據包

它是netty 3.2.7的錯誤嗎?或者你有任何關於recv-q增加的想法? 我已經在下面附加了netstat結果和jstack線程轉儲。

Netstat Result : 

tcp  0 0 client-side'IP:54190 server-side'IP-1:61617 ESTABLISHED 
tcp  0 0 client-side'IP:53254 server-side'IP-2:61617 ESTABLISHED 
tcp  0 0 client-side'IP:60469 server-side'IP-3:61617 ESTABLISHED 
tcp  0 0 client-side'IP:35387 server-side'IP-4:61617 ESTABLISHED 
tcp  0 0 client-side'IP:56935 server-side'IP-5:61617 ESTABLISHED 
tcp  0 0 client-side'IP:50508 server-side'IP-6:61617 ESTABLISHED 
tcp 708131 0 client-side'IP:48940 server-side'IP-7:61617 ESTABLISHED 
tcp  0 0 client-side'IP:50279 server-side'IP-8:61617 ESTABLISHED 


tcp  0 0 client-side'IP:53568 server-side'IP-1:61616 ESTABLISHED 
tcp  0 0 client-side'IP:52674 server-side'IP-2:61616 ESTABLISHED 
tcp  0 0 client-side'IP:60489 server-side'IP-3:61616 ESTABLISHED 
tcp  0 0 client-side'IP:48712 server-side'IP-4:61616 ESTABLISHED 
tcp  0 0 client-side'IP:55519 server-side'IP-5:61616 ESTABLISHED 
tcp  0 0 client-side'IP:38608 server-side'IP-6:61616 ESTABLISHED 
tcp  0 0 client-side'IP:57940 server-side'IP-7:61616 ESTABLISHED 
tcp  0 0 client-side'IP:51759 server-side'IP-8:61616 ESTABLISHED 

Jstack Dump : 

2013-01-11 14:36:20 
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode): 

"http-80-6" daemon prio=10 tid=0x00002aaab2dee800 nid=0x1888 in Object.wait() [0x00000000417bd000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0e0b630> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0e0b630> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-443-13" daemon prio=10 tid=0x00002aaab599a800 nid=0x1887 in Object.wait() [0x00000000419bf000] 
"http-443-12" daemon prio=10 tid=0x00002aaab43e5800 nid=0x1886 in Object.wait() [0x0000000042339000] 
"http-443-11" daemon prio=10 tid=0x00002aaab43e4800 nid=0x1885 in Object.wait() [0x000000004253b000] 
"http-443-10" daemon prio=10 tid=0x00002aaab43e4000 nid=0x1884 in Object.wait() [0x000000004273d000] 
"http-443-9" daemon prio=10 tid=0x00002aaab43e3000 nid=0x1883 in Object.wait() [0x000000004293f000] 
"http-443-8" daemon prio=10 tid=0x00002aaab43e2800 nid=0x1881 in Object.wait() [0x0000000042b41000] 
"http-443-7" daemon prio=10 tid=0x00002aaab43e2000 nid=0x1880 in Object.wait() [0x0000000042d43000] 
"http-443-6" daemon prio=10 tid=0x00002aaab5aa3800 nid=0x17b7 in Object.wait() [0x0000000042f45000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0e0c2c0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0e0c2c0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-5" daemon prio=10 tid=0x00002aaab30a4800 nid=0x17b6 in Object.wait() [0x0000000043349000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0e0b780> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0e0b780> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-4" daemon prio=10 tid=0x00002aaab3c4b800 nid=0x17b5 in Object.wait() [0x0000000043147000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0e0ba20> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0e0ba20> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-3" daemon prio=10 tid=0x00002aaab3f26800 nid=0x17b4 in Object.wait() [0x000000004354b000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0e0bcc0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0e0bcc0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"Attach Listener" daemon prio=10 tid=0x00002aaab30a4000 nid=0x111e waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"http-443-5" daemon prio=10 tid=0x00002aaab6017000 nid=0x4af5 in Object.wait() [0x000000004394f000] 
"http-443-4" daemon prio=10 tid=0x00002aaab42e6000 nid=0x2f85 in Object.wait() [0x0000000043b51000] 
"http-443-3" daemon prio=10 tid=0x00002aaab40a5800 nid=0x632a in Object.wait() [0x0000000043d53000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0dfce70> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0dfce70> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"MultiThreadedHttpConnectionManager cleanup" daemon prio=10 tid=0x00002aaab435a000 nid=0x4139 in Object.wait() [0x000000004556b000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031e9a0> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) 
    - locked <0x00000000c031e9a0> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) 
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122) 

"TP-Monitor" daemon prio=10 tid=0x00002aaab4539800 nid=0x412a in Object.wait() [0x000000004546a000] 
    java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031ea40> (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) 
    at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:565) 
    - locked <0x00000000c031ea40> (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) 
    at java.lang.Thread.run(Thread.java:662) 

"TP-Processor4" daemon prio=10 tid=0x00002aaab4262000 nid=0x4129 runnable [0x0000000045369000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c031eb00> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:311) 
    at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:668) 
    at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:879) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) 
    at java.lang.Thread.run(Thread.java:662) 

"TP-Processor3" daemon prio=10 tid=0x00002aaab43ae000 nid=0x4128 in Object.wait() [0x0000000045268000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031edc8> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:662) 
    - locked <0x00000000c031edc8> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Thread.run(Thread.java:662) 

"TP-Processor2" daemon prio=10 tid=0x00002aaab57a6800 nid=0x4127 in Object.wait() [0x0000000045167000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031ee70> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:662) 
    - locked <0x00000000c031ee70> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Thread.run(Thread.java:662) 

"TP-Processor1" daemon prio=10 tid=0x00002aaab601a000 nid=0x4126 in Object.wait() [0x0000000045066000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031ef18> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:662) 
    - locked <0x00000000c031ef18> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) 
    at java.lang.Thread.run(Thread.java:662) 

"http-443-2" daemon prio=10 tid=0x00002aaab42b7000 nid=0x4125 in Object.wait() [0x0000000044f65000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0167dd8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c0167dd8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-443-1" daemon prio=10 tid=0x00002aaab459a800 nid=0x4124 runnable [0x0000000044e64000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.read(SocketInputStream.java:129) 
    at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293) 
    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:830) 
    - locked <0x00000000eede5038> (a java.lang.Object) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:787) 
    at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) 
    - locked <0x00000000eede50a0> (a com.sun.net.ssl.internal.ssl.AppInputStream) 
    at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:735) 
    at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:366) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:814) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:662) 

"http-443-Acceptor-0" daemon prio=10 tid=0x00002aaab5fcf000 nid=0x4123 runnable [0x0000000044d63000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c02b1bf0> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:261) 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:178) 
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-2" daemon prio=10 tid=0x00002aaab3d22000 nid=0x4122 in Object.wait() [0x0000000044c62000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031f6b8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c031f6b8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-1" daemon prio=10 tid=0x00002aaab3d21800 nid=0x4121 in Object.wait() [0x0000000044b61000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c031f918> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) 
    - locked <0x00000000c031f918> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) 
    at java.lang.Thread.run(Thread.java:662) 

"http-80-Acceptor-0" daemon prio=10 tid=0x00002aaab450d000 nid=0x4120 runnable [0x0000000044a60000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c031fb50> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) 
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352) 
    at java.lang.Thread.run(Thread.java:662) 

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=10 tid=0x00002aaab45b5800 nid=0x411f waiting on condition [0x0000000041bc1000] 
    java.lang.Thread.State: TIMED_WAITING (sleeping) 
    at java.lang.Thread.sleep(Native Method) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1631) 
    at java.lang.Thread.run(Thread.java:662) 

"scheduler_QuartzSchedulerThread" prio=10 tid=0x00002aaab434a800 nid=0x411b waiting on condition [0x000000004495f000] 
    java.lang.Thread.State: TIMED_WAITING (sleeping) 
    at java.lang.Thread.sleep(Native Method) 
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:272) 

"scheduler_Worker-9" prio=10 tid=0x00002aaab540b000 nid=0x411a in Object.wait() [0x000000004485e000] 
"scheduler_Worker-8" prio=10 tid=0x00002aaab4a22000 nid=0x4119 in Object.wait() [0x000000004475d000] 
"scheduler_Worker-7" prio=10 tid=0x00002aaab4e41000 nid=0x4118 in Object.wait() [0x000000004465c000] 
"scheduler_Worker-6" prio=10 tid=0x00002aaab577e800 nid=0x4117 in Object.wait() [0x000000004455b000] 
"scheduler_Worker-5" prio=10 tid=0x00002aaab5096000 nid=0x4116 in Object.wait() [0x000000004445a000] 
"scheduler_Worker-4" prio=10 tid=0x00002aaab528d800 nid=0x4115 in Object.wait() [0x0000000044359000] 
"scheduler_Worker-3" prio=10 tid=0x00002aaab5185800 nid=0x4114 in Object.wait() [0x0000000044258000] 
"scheduler_Worker-2" prio=10 tid=0x00002aaab5185000 nid=0x4113 in Object.wait() [0x0000000044157000] 
"scheduler_Worker-1" prio=10 tid=0x00002aaab4d8b800 nid=0x4112 in Object.wait() [0x0000000044056000] 
"scheduler_Worker-0" prio=10 tid=0x00002aaab421f000 nid=0x4111 in Object.wait() [0x0000000043f55000] 
    java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0536710> (a java.lang.Object) 
    at org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) 
    - locked <0x00000000c0536710> (a java.lang.Object) 
    at org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) 
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) 

"New I/O client worker #16-1" prio=10 tid=0x00002aaab80b3000 nid=0x4110 runnable [0x0000000043e54000] 
"New I/O client worker #15-1" prio=10 tid=0x00002aaab2db1000 nid=0x410e runnable [0x0000000043c52000] 
"New I/O client worker #14-1" prio=10 tid=0x00002aaab3767000 nid=0x410c runnable [0x0000000043a50000] 
"New I/O client worker #13-1" prio=10 tid=0x00002aaab8346800 nid=0x410a runnable [0x000000004384e000] 
"New I/O client worker #12-1" prio=10 tid=0x00002aaab2874000 nid=0x4108 runnable [0x000000004364c000] 
"New I/O client worker #11-1" prio=10 tid=0x00002aaab2d08800 nid=0x4106 runnable [0x000000004344a000] 
"New I/O client worker #10-1" prio=10 tid=0x00002aaab2d71000 nid=0x4104 runnable [0x0000000043248000] 
"New I/O client worker #9-1" prio=10 tid=0x00002aaab3f2d800 nid=0x4102 runnable [0x0000000043046000] 
"New I/O client worker #8-1" prio=10 tid=0x00002aaab3963000 nid=0x4100 runnable [0x0000000042e44000] 
"New I/O client worker #7-1" prio=10 tid=0x00002aaab84ee800 nid=0x40fe runnable [0x0000000042c42000] 
"New I/O client worker #6-1" prio=10 tid=0x00002aaab312f800 nid=0x40fc runnable [0x0000000042a40000] 
"New I/O client worker #5-1" prio=10 tid=0x00002aaab8c08800 nid=0x40fa runnable [0x000000004283e000] 
"New I/O client worker #4-1" prio=10 tid=0x00002aaab2902000 nid=0x40f8 runnable [0x000000004263c000] 
"New I/O client worker #3-1" prio=10 tid=0x00002aaab82bd000 nid=0x40f6 runnable [0x000000004243a000] 
"New I/O client worker #2-1" prio=10 tid=0x00002aaab30de800 nid=0x40f4 runnable [0x0000000041ac0000] 
"New I/O client worker #1-1" prio=10 tid=0x00002aaab2d28800 nid=0x40f2 runnable [0x00000000418be000] 
    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 <0x00000000c0652130> (a sun.nio.ch.Util$2) 
    - locked <0x00000000c0652120> (a java.util.Collections$UnmodifiableSet) 
    - locked <0x00000000c053ebc0> (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:165) 
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44) 
    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) 

"pool-2-thread-1" prio=10 tid=0x00002aaab355d000 nid=0x40f0 waiting on condition [0x00000000416bc000] 
    java.lang.Thread.State: TIMED_WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000000c03bf0d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) 
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
    at java.lang.Thread.run(Thread.java:662) 

"pool-1-thread-1" prio=10 tid=0x00002aaab82ff800 nid=0x40ef waiting on condition [0x00000000415bb000] 
    java.lang.Thread.State: TIMED_WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000000c034b600> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) 
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
    at java.lang.Thread.run(Thread.java:662) 

"GC Daemon" daemon prio=10 tid=0x000000004118a000 nid=0x40eb in Object.wait() [0x0000000042238000] 
    java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0018be8> (a sun.misc.GC$LatencyLock) 
    at sun.misc.GC$Daemon.run(GC.java:100) 
    - locked <0x00000000c0018be8> (a sun.misc.GC$LatencyLock) 

"RMI TCP Accept-0" daemon prio=10 tid=0x00002aaab405e800 nid=0x40e9 runnable [0x00000000413b9000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c000a428> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341) 
    at java.lang.Thread.run(Thread.java:662) 

"RMI TCP Accept-9999" daemon prio=10 tid=0x00002aaab405b000 nid=0x40e8 runnable [0x00000000412b8000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c0018c80> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341) 
    at java.lang.Thread.run(Thread.java:662) 

"RMI TCP Accept-0" daemon prio=10 tid=0x00002aaab4001800 nid=0x40e7 runnable [0x0000000040dab000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c0027960> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369) 
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341) 
    at java.lang.Thread.run(Thread.java:662) 

"Low Memory Detector" daemon prio=10 tid=0x0000000041016800 nid=0x40e4 runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread1" daemon prio=10 tid=0x0000000041014800 nid=0x40e3 waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread0" daemon prio=10 tid=0x000000004100e800 nid=0x40e2 waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"Signal Dispatcher" daemon prio=10 tid=0x000000004100c800 nid=0x40e1 runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"Finalizer" daemon prio=10 tid=0x0000000040feb000 nid=0x40e0 in Object.wait() [0x0000000040b8e000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0027bf8> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) 
    - locked <0x00000000c0027bf8> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) 
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) 

"Reference Handler" daemon prio=10 tid=0x0000000040fe9000 nid=0x40df in Object.wait() [0x0000000040a8d000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x00000000c0018bd8> (a java.lang.ref.Reference$Lock) 
    at java.lang.Object.wait(Object.java:485) 
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) 
    - locked <0x00000000c0018bd8> (a java.lang.ref.Reference$Lock) 

"main" prio=10 tid=0x0000000040f84800 nid=0x40d9 runnable [0x000000004098c000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) 
    - locked <0x00000000c01d29c0> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:462) 
    at java.net.ServerSocket.accept(ServerSocket.java:430) 
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:431) 
    at org.apache.catalina.startup.Catalina.await(Catalina.java:676) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:628) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

"VM Thread" prio=10 tid=0x0000000040fe2000 nid=0x40de runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000040f97800 nid=0x40da runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000040f99000 nid=0x40db runnable 

"GC task thread#2 (ParallelGC)" prio=10 tid=0x0000000040f9b000 nid=0x40dc runnable 

"GC task thread#3 (ParallelGC)" prio=10 tid=0x0000000040f9d000 nid=0x40dd runnable 

"VM Periodic Task Thread" prio=10 tid=0x00002aaab4061000 nid=0x40ea waiting on condition 

JNI global references: 1865 
+0

你正在使用一個漂亮的老版本的Netty。如何升級最新的穩定版本並讓我們知道您的發現? – trustin

+0

我同意升級。但我想知道在升級之前從錯誤報告中瞭解到這個問題。它是間歇性的,我不能再現... – shnam

+0

我們的過程首先發送消息給客戶端(1EA),並在服務器上傳遞消息(8EA與2守護進程)。
其次,每臺服務器向客戶端發送結果消息。
三,客戶端將消息傳遞給另一個Web服務器。 – shnam

回答

0

感謝Trustin的回覆。這不是網絡錯誤,也不是構建我們的服務。另外Jstack線程轉儲不正確。很抱歉。

一旦收到來自服務器端的消息,客戶端將結果發送給第三方系統(HTTP)。由於默認的超時設置,消息傳遞服務掛起。

相關問題