我不知道它是netty 3.2.7.Final bug。问题是在客户端(使用SecureChatClient)意外地增加了recv-q中从服务器端(使用SecureChatServer)接收实时消息的数据包。 我想在应用程序级别读取数据包时会出现死锁。
这是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 :(得分:0)
感谢Trustin的回复。这不是网络错误,也不是构建我们的服务。 Jstack线程转储也不正确。很抱歉。
一旦收到来自服务器端的消息,客户端就会将结果发送给第三方系统(HTTP)。由于默认超时设置,消息传递服务会挂起。