SSL 操作线程大量blocked和大量CLOSE_WAIT 连接


网络出现大量:

close_wait

线程类似:

"pool-12-thread-44" prio=10 tid=0x00007fd1f0008800 nid=0x5bd9 waiting for monitor entry [0x00007fd0168ed000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at sun.security.util.MemoryCache.put(Cache.java:353)
	- waiting to lock <0x00007fd67c192730> (a sun.security.util.MemoryCache)
	at sun.security.ssl.SSLSessionContextImpl.put(SSLSessionContextImpl.java:181)
	at sun.security.ssl.ServerHandshaker.clientFinished(ServerHandshaker.java:1501)
	at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:243)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
	at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1004)
	- locked <0x00007fd78fe611a0> (a sun.security.ssl.SSLEngineImpl)
	at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:884)
	at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:758)
	- locked <0x00007fd6d0eef410> (a java.lang.Object)


最后确定为jdk小版本的一个bug:【jdk7在u_60修正,JDK6 在6u38修正,JDK8没细看也要注意下

JDK-8013809 : deadlock in SSLSocketImpl between between write and close

http://bugs.java.com/view_bug.do?bug_id=8013809


JDK 7 u_60 release log

http://www.oracle.com/technetwork/java/javase/2col/7u60-bugfixes-2202029.html


你可能感兴趣的:(jdk,ssl,deadlock)