-ANN: Curator 1.3.0
Jordan Zimmerman 2013-01-10, 23:02
* MAJOR CHANGE (thus a version bump): 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).
* Added checks for illegal namespaces.
* Issue 232: NodeCache wasn't handling server connection issues well. It would repeatedly execute checkExists()
with a watcher causing the heap to fill with watcher objects.
* Issue 233: An internal idiom being used to create an EnsurePath instance with the parent of a passed in path
wasn't correct. Due to an unfortunate implementation of ZKPaths.PathAndNode (mea culpa) the root path is specified
differently than non-root paths. To work around this, I added a method to EnsurePath - excludingLast() - that
can be used instead of the idiom.
* Issue 230: Added a filter to control which IP address are returned by ServiceInstanceBuilder.getAllLocalIPs().
Set the filter via ServiceInstanceBuilder.setLocalIpFilter().