[ 
https://issues.apache.org/jira/browse/CURATOR-570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17129402#comment-17129402
 ] 

Rhys Yarranton commented on CURATOR-570:
----------------------------------------

Getting confused here.  ZooKeeper does not give Curator a connection string.  
It supplies a node of configuration information.  Curator reads this and 
constructs a connection string from it.

If you're using Exhibitor, then it's different, and ExhibitorEnsembleProvider 
does a lot of work checking for updates _etc._  But if using ZooKeeper's 
dynamic reconfiguration, the FixedEnsembleProvider is essentially just a holder 
for the connection string.  The logic to decide when new connection strings are 
required and how to construct them lies elsewhere.

 

> 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)

Reply via email to