GitHub user Randgalt opened a pull request:
https://github.com/apache/curator/pull/303
[CURATOR-498] Protected Mode creation can mistake closing session's node
causing problems for many recipes such as LeaderLatch
Kudos to user Shay Shimony for his tireless and excellent work tracking
this down. There are two problems addressed here: 1) Protected create mode can
potentially find a ZNode that is about to be deleted due to an expired session.
CreateBuilderImpl now keeps track of the session ID when the create is
initiated. If after a connection loss the session ID has changed, any found
protected node is ignored as it will soon be deleted. 2) For ZooKeeper 3.4.x
the simulated (via reflection) InjectSessionExpiration was incorrectly setting
the connection state to closed which caused the session expiration to be
ignored.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/curator CURATOR-498
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/curator/pull/303.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #303
----
commit ea505f54291dc548aca947503630960cd10225d0
Author: randgalt <randgalt@...>
Date: 2019-01-28T19:23:15Z
CURATOR-498
Kudos to user Shay Shimony for his tireless and excellent work tracking
this down. There are two problems addressed here: 1) Protected create mode can
potentially find a ZNode that is about to be deleted due to an expired session.
CreateBuilderImpl now keeps track of the session ID when the create is
initiated. If after a connection loss the session ID has changed, any found
protected node is ignored as it will soon be deleted. 2) For ZooKeeper 3.4.x
the simulated (via reflection) InjectSessionExpiration was incorrectly setting
the connection state to closed which caused the session expiration to be
ignored.
----
---