Shevek created CURATOR-7:
----------------------------

             Summary: Session ids not preserved if EnsembleProvider has changed 
the ensemble
                 Key: CURATOR-7
                 URL: https://issues.apache.org/jira/browse/CURATOR-7
             Project: Apache Curator
          Issue Type: Bug
            Reporter: Shevek
            Assignee: Jordan Zimmerman


See https://github.com/Netflix/curator/issues/266

InterProcessMutex, LeaderLatch, etc use an ephemeral node. If ZooKeeper gives a 
Disconnected event, the native client reconnects with the same session id, and 
the ephemeral node is preserved. If the ensemble changes at any point before a 
Disconnect, Curator's ConnectionState#checkState() calls 
handleNewConnectionString(), which constructs a new native ZK client, 
discarding the previous session id, and losing all locks.

This can be expensive.

Can ConnectionState be made to preserve the session id, or be more conservative 
about discarding the entire native client on a Disconnected event?


Clarifications:

An ensemble change (e.g. adding a new node to a cluster) does not mean that all 
session ids are now invalid. The next network glitch should not break locks.

There is no assumption in this description that the reconfiguration and the 
glitch/disconnection were related - they need not be.

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

Reply via email to