Please sign in to comment.
I'd always thought that if the client is disconnected from the server
long enough then an Expired event would be generated. Testing, however, shows this not to be the case. I believe it's related to ZOOKEEPER-1159. The behavior associated with this is that if the clients lost connection to the cluster for longer than the session expiration they would _never_ be able to reconnect. The connection would be permanently lost. Many users were seeing this as endless log messages indicating "Connection timed out for connection...". As a workaround, in 1.3.0+ when the Curator state changes to LOST, a flag will be set so that the next time Curator needs to get the ZooKeeper instance, the current instance will be closed and a new ZooKeeper instance will be allocated (as if the session had expired).
- Loading branch information...
Showing with 117 additions and 24 deletions.
- +10 −1 CHANGES.txt
- +17 −1 curator-client/src/main/java/com/netflix/curator/ConnectionState.java
- +9 −0 curator-client/src/main/java/com/netflix/curator/CuratorZookeeperClient.java
- +5 −0 curator-framework/src/main/java/com/netflix/curator/framework/state/ConnectionStateManager.java
- +66 −11 curator-framework/src/test/java/com/netflix/curator/framework/imps/TestFrameworkEdges.java
- +9 −10 curator-recipes/src/test/java/com/netflix/curator/framework/recipes/cache/TestNodeCache.java
- +1 −1 gradle.properties