You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Rhys Yarranton (Jira)" <ji...@apache.org> on 2020/05/12 00:38:00 UTC

[jira] [Created] (CURATOR-570) Excessive calls to ZooKeeper.updateServerList (which can result in session death)

Rhys Yarranton created CURATOR-570:
--------------------------------------

             Summary: Excessive calls to ZooKeeper.updateServerList (which can result in session death)
                 Key: CURATOR-570
                 URL: https://issues.apache.org/jira/browse/CURATOR-570
             Project: Apache Curator
          Issue Type: Bug
          Components: Framework
    Affects Versions: 4.3.0, 4.2.0
            Reporter: Rhys Yarranton


On suspend and reconnect, Curator calls ZooKeeper.updateServerList via ConnectionState.checkState --> ConnectionState.handleNewConnectionString.  In addition, recipes may be triggered by this as well, and they too make calls ZooKeeper.updateServerList via ConnectState.checkTimeouts --> ConnectionState.handleNewConnectionString.

This happens even though the connection string has not actually changed.

Due to ZOOKEEPER-3825, this can cause the connection to be closed immediately.  On its own this would be perceived as a glitch.  But due to the Curator-induced calls, what we see is a cycle of SUSPENDED/RECONNECTED, until eventually the session dies and a new session is recreated.

Based on the source code (at time of writing), ZooKeeper.updateServerList is not intended to be called frequently like this.



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