On Wed, 10 Nov 2021 17:28:18 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

> Did you have a chance to analysis the potential deadlock issues between 
> handshake lock, read lock, write lock and socket lock? The locks used in 
> SSLSocketImpl is complicated. If I remember correctly, there are potential 
> deadlock issues if the read/write locks are used during handshaking. Did you 
> have a dead lock stack for the bug? Alternatively, it might be a direction to 
> improve the close() code.

Hi @XueleiFan,

Thank you for review.
There are two stack traces in the bug report. The one is for SSLSocket.close() 
and another for SSLSocketImpl.readHandshakeRecord()
SSLSocket.close() is hanged on the InputStream.skip() operation. 
SSLSocket.close() and  SSLSocketImpl.readHandshakeRecord() are called 
concurrently. SSLSocket.close() calls InputStream.skip() to clear input data 
from socket but concurrent SSLSocketImpl.readHandshakeRecord() reads some data 
from the socket. As result InputStream.skip() can not complete operation for 
previously calculated available bytes and hangs.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5760

Reply via email to