[
https://issues.apache.org/jira/browse/IGNITE-28983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18104495#comment-18104495
]
Ignite TC Bot commented on IGNITE-28983:
----------------------------------------
{panel:title=Branch: [pull/13477/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13477/head] Base: [master] : New Tests
(3)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Thin Client: Java{color} [[tests
3|https://ci2.ignite.apache.org/viewLog.html?buildId=9280628]]
* {color:#013220}ClientTestSuite:
ThinClientHandshakeTimeoutTest.testSslHandshakeTimeout - PASSED{color}
* {color:#013220}ClientTestSuite:
ThinClientHandshakeTimeoutTest.testConnectionIsReleasedOnHandshakeTimeout -
PASSED{color}
* {color:#013220}ClientTestSuite:
ThinClientHandshakeTimeoutTest.testHandshakeTimeout - PASSED{color}
{panel}
[TeamCity *--> Run :: All*
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9280685&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9280685
rerunBuildIds=9280711,9280713,9280715{color}
> [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: 10m
> 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)