[ 
https://issues.apache.org/jira/browse/IGNITE-28983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18107957#comment-18107957
 ] 

Ignite TC Bot commented on IGNITE-28983:
----------------------------------------

Fixed thin JDBC client hangs when an SSL endpoint stops responding during the 
handshake.

The Release Note field has been filled with the wording above. Please review it 
and edit it if needed.

> [Thin client] Thin client hangs if the remote endpoint stops responding 
> during the SSL handshake without closing the socket
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28983
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28983
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Mikhail Petrov
>            Assignee: Mikhail Petrov
>            Priority: Major
>              Labels: ise
>             Fix For: 2.19
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, the thin client waits indefinitely for SSL handshake completion 
> without any timeout (see 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer#open).
> If the remote endpoint stops responding during the SSL handshake but does not 
> close the socket, the thin client hangs indefinitely with the following stack 
> trace:
> {code:java}
> "scheduling-1" #76 prio=5 os_prio=0 cpu=79.59ms elapsed=614.80s tid=... 
> nid=0x71 waiting on condition
>    java.lang.Thread.State: WAITING (parking)
>     at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
>     at 
> java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)
>     at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:181)
>     at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:144)
>     at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:190)
>     at 
> org.apache.ignite.internal.client.thin.TcpClientChannel.<init>(TcpClientChannel.java:210)
>     at 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1137)
>     - locked <0x00000000c4360d78> (a 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder)
>     ...
>     at 
> org.apache.ignite.internal.client.thin.ReliableChannel.affinityService(ReliableChannel.java:412)
>     at 
> org.apache.ignite.internal.client.thin.TcpClientCache.cacheSingleKeyOperation(TcpClientCache.java:1486)
>     at 
> org.apache.ignite.internal.client.thin.TcpClientCache.containsKey(TcpClientCache.java:235)
> {code}
> This situation may occur when thin client traffic is proxied by a container 
> or pod, for example:
> {code:java}
> thin client -> inbound socket | poxy | outbound socket -> server
> {code}
> If only the `outbound socket -> server` sockets are closed while the proxy 
> keeps the inbound socket open, the client never receives a socket close event 
> and continues waiting indefinitely for the SSL handshake to complete.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to