You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Steshin (Jira)" <ji...@apache.org> on 2020/10/29 16:51:00 UTC

[jira] [Updated] (IGNITE-13643) Fix long closing of the socker in ServerImpl (TcpDiscoverySpi)

     [ https://issues.apache.org/jira/browse/IGNITE-13643?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Steshin updated IGNITE-13643:
--------------------------------------
    Description: 
Current IgniteUtils.closeQuiet(@Nullable Socket sock) takes about 5sec to close socket. Probably it is default soTimeout. This violates node detection failure. Despite we set failureDetectionTiemout == 1000, node failure is detected within 6.5 secs in average. Logging shows delay on socket closing in IgniteUtils.closeQuiet(@Nullable Socket sock).

Suggestion: use forced closing, set soLinger=0, do now wait for rest of the socket IO. We close socket in TcpDiscoverySpi when we already waited for target timeouts and consider connection is lost or invalid. We do not need to wait for any traffic on the socket any more.

There is note that 'graceful' socket closing was made to workaround bag in OpenJDK12 [1]. But as I see it has been fixed.

[1] https://bugs.openjdk.java.net/browse/JDK-8219658

  was:
Current IgniteUtils.closeQuiet(@Nullable Socket sock) takes about 5sec to close socket. Probably it is default soTimeout. This violates node detection failure. Despite we set failureDetectionTiemout == 1000, node failure is detected within 6.5 secs in average. Logging shows delay on socket closing in IgniteUtils.closeQuiet(@Nullable Socket sock).

Suggestion: use forced closing, set soLinger=0, do now wait for rest of the socket IO. We close socket in TcpDiscoverySpi when we already waited for target timeouts and consider connection is lost or invalid. We do not need to wait for any traffic on the socket any more.


> Fix long closing of the socker in ServerImpl (TcpDiscoverySpi)
> --------------------------------------------------------------
>
>                 Key: IGNITE-13643
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13643
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vladimir Steshin
>            Assignee: Vladimir Steshin
>            Priority: Critical
>
> Current IgniteUtils.closeQuiet(@Nullable Socket sock) takes about 5sec to close socket. Probably it is default soTimeout. This violates node detection failure. Despite we set failureDetectionTiemout == 1000, node failure is detected within 6.5 secs in average. Logging shows delay on socket closing in IgniteUtils.closeQuiet(@Nullable Socket sock).
> Suggestion: use forced closing, set soLinger=0, do now wait for rest of the socket IO. We close socket in TcpDiscoverySpi when we already waited for target timeouts and consider connection is lost or invalid. We do not need to wait for any traffic on the socket any more.
> There is note that 'graceful' socket closing was made to workaround bag in OpenJDK12 [1]. But as I see it has been fixed.
> [1] https://bugs.openjdk.java.net/browse/JDK-8219658



--
This message was sent by Atlassian Jira
(v8.3.4#803005)