Charles-Henri de Boysson
Charles-Henri de Boysson
closes #644 #662 #663 ## Why is this needed? Migrate to python packaging best practices. ## Proposed Changes - use setup.cfg & pyproject.toml to build kazoo ## Does this PR...
Also add support through transations. Closes #334, #496
The lock recipe assumes `threading.Lock.acquire()` does **not** take a timeout argument. https://github.com/python-zk/kazoo/blob/b20c929421ff72421ad3770fb3436d583df5e5b0/kazoo/recipe/lock.py#L173 https://docs.python.org/3/library/threading.html#threading.Lock.acquire > Changed in version 3.2: The timeout parameter is new. Code can be simplified a lot now...
https://github.com/python-zk/kazoo/blob/b20c929421ff72421ad3770fb3436d583df5e5b0/kazoo/recipe/lock.py#L286 This assumption badly broken. Sequence numbers are **signed** 32bit wrapping numbers. https://zookeeper.apache.org/doc/r3.6.0/zookeeperProgrammers.html#Sequence+Nodes+--+Unique+Naming The proper way to handle them is to use [SNA](https://en.wikipedia.org/wiki/Serial_number_arithmetic)
Make sure the number of attempts matches the `max_retry` parameter. Add unit tests to that effect. ## Why is this needed? So that users can precisely control the number of...
Fixes #664, ## Why is this needed? This provides a top level control to limit the load a given client can generate on an ensemble in the form of number...
## Why is this needed? Do not use the session timeout as connection timeout. This value is too large and results in a bad non-responsive server holding up the client...