[
https://issues.apache.org/jira/browse/CURATOR-8?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13617858#comment-13617858
]
Shevek commented on CURATOR-8:
------------------------------
Issue made more complex by the fact that connection timeouts are handled within
the ZooKeeper instance and ZK does not give a signal to the outer framework
when it's exhausted its Host loop.
Issue made simpler by the fact that we can redeliver a changed Host set to the
ZooKeeper instance whenever the Ensemble says so, and other than doing that,
there's nothing we can usefully (functionally) do when the Host loop _is_
exhausted except perhaps tell the user application.
> Possible mishandling of connection timeouts on large/shooty clusters
> --------------------------------------------------------------------
>
> Key: CURATOR-8
> URL: https://issues.apache.org/jira/browse/CURATOR-8
> Project: Apache Curator
> Issue Type: Bug
> Components: Client
> Reporter: Shevek
> Assignee: Jordan Zimmerman
>
> See CURATOR-7 for background.
> ConnectionState.checkTimeouts resets the connection if the session timeout
> has expired, whether or not we ever had a session. If one has a large, shooty
> cluster with a short session timeout and a long connection timeout, this
> might reset the host list pointer to zero every sessionTimeoutMs, never
> letting it connect to a valid, available host towards the end of the list. On
> the other hand, if it is an assertion that sessionTimeout > connectionTimeout
> always, then the min() call is not required and the ifelse should read "else
> if (elapsed > connectionTimeoutMs)" instead of just "else".
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira