You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Jie Huang (Jira)" <ji...@apache.org> on 2019/10/12 22:50:00 UTC

[jira] [Created] (ZOOKEEPER-3573) Dealing with long TLS connection closing time without SO_LINGER option

Jie Huang created ZOOKEEPER-3573:
------------------------------------

             Summary: Dealing with long TLS connection closing time without SO_LINGER option
                 Key: ZOOKEEPER-3573
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3573
             Project: ZooKeeper
          Issue Type: Improvement
          Components: server
    Affects Versions: 3.6.0
            Reporter: Jie Huang


As described in ZOOKEEPER-3384, with SSL sockets, a close_notify is required to be sent before closing the write side of a connection. When the send buffer is full and the writing is blocked, it will take a long time to send close_notify thus a long time to close the socket. The long closing time on followers with a partitioned-away leader would stall the shutdown process and delay a new leader election to establish a new quorum. As a result, the ensemble would be unavailable for a long time.

In ZOOKEEPER-3384, SO_LINGER option is used to close the socket quickly (and potentially uncleanly). In JDK 11, however, SO_LINGER option is not honored so we need a new way to avoid the long quorum unavailable time.



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