[ https://issues.apache.org/jira/browse/CURATOR-570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17104988#comment-17104988 ]
Jordan Zimmerman commented on CURATOR-570: ------------------------------------------ Whether or not we change this in Curator, you can add your own EnsembleProvider that does not do this. In CuratorFrameworkFactory, use this method instead of {{connectString(String connectString)}}: {code} CuratorFrameworkFactory.builder() .... .ensembleProvider(new FixedEnsembleProvider(connectionString, false)) // false for updateServerListEnabled .... {code} > 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.2.0, 4.3.0 > Reporter: Rhys Yarranton > Priority: Major > > 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)