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)