[ https://issues.apache.org/jira/browse/ZOOKEEPER-3774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Han reassigned ZOOKEEPER-3774: -------------------------------------- Assignee: Jie Huang > Close quorum socket asynchronously on the leader to avoid ping being blocked > by long socket closing time > -------------------------------------------------------------------------------------------------------- > > Key: ZOOKEEPER-3774 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3774 > Project: ZooKeeper > Issue Type: Sub-task > Components: server > Reporter: Jie Huang > Assignee: Jie Huang > Priority: Minor > Labels: pull-request-available > Fix For: 3.6.3 > > Time Spent: 3h > Remaining Estimate: 0h > > In ZOOKEEPER-3574 we close the quorum sockets on followers asynchronously > when a leader is partitioned away so the shutdown process will not be stalled > by long socket closing time and the followers can quickly establish a new > quorum to serve client requests. > We've found that the long socket closing time can cause trouble on the leader > too when a follower is partitioned away if the partition is detected by > PingLaggingDetector. When the ping thread detects partition, it tries to > disconnect the follower. If the socket closing time is long, the ping thread > will be blocked and no ping is sent to any follower--even the ones still > connected to the leader--since the ping thread is responsible for sending > pings to all followers. When followers don't receive pings, they don't send > ping response. When the leader don't receive ping response, the sessions > expire. > To prevent good sessions from expiring, we need to close the socket > asynchronously on the leader too. > -- This message was sent by Atlassian Jira (v8.3.4#803005)