summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix(ci): deploying only for 1 jobrelease/2.6Stephen2019-01-251-2/+2
|
* chore: 2.6.1 release and changelog2.6.1Stephen2019-01-222-1/+18
|
* fix(handlers): make AsyncResult call all registered callbacks instantly if ↵laura-surcel2019-01-154-16/+49
| | | | | | the handler has stopped running (#549) This avoids zombie thread to appear when creating and closing the client right after. A new unit case is added.
* fix(client): add missing paren (#550)Tristan de Cacqueray2019-01-131-1/+1
|
* fix(core): support deprecated KazooRetry argument (#545)Charles-Henri de Boysson2018-12-111-1/+10
| | | | Accept kazoo<=2.5.0 KazooRetry 'max_jitter' argument and display a warning for backward compatibility.
* fix(recipe): No more memory leak when ChildrenWatch was stopped (#543)kulallwang2018-12-062-0/+36
| | | | | | | This ensures that the watcher is removed from the client listener when the func given to ChildrenWatch returns False. Previously, the watcher was never removed so the ChildrenWatch object would endlessly grow in memory. A unit test is added to ensure this case never happen again. Fix #542
* fix(core): reduce timeout for the first Connect() request (#540)Florian Margaine2018-11-271-1/+1
| | | | | In the case of a zookeeper server under pressure, it will typically try to maintain the quorum rather than handling client requests. In this kind of case, the quorum is maintained, the connection works, but the client is frozen there. Retrying after a shorter timeout means we can reconnect to another server before losing the session altogether.
* fix(recipe): No more memory leak once TreeCache was closed (#524)Jiangge Zhang2018-11-217-15/+171
| | | | | | | | | | fix(recipe): Fix memory leak of TreeCache recipe. Fix memory leak on idle handler and on closed TreeCache. Add new memory tests for TreeCache recipe that uses objgraph and other tests for various handler on TreeCache. Let TreeCache start in a safe way. The doc now suggest to close unused TreeCache.
* Merge pull request #535 from python-zk/release/2.6Ben Bangert2018-11-152-1/+33
|\ | | | | chore: 2.6.0 release and changelog
| * chore: 2.6.0 release and changelog2.6.0Stephen2018-11-142-1/+33
|/
* fix(core): ensure timeout argument is positive (#534)Chris Donati2018-11-092-1/+84
| | | | | | | | | Previously, a gap between calls to `time.time()` could lead to a situation where the current time was less than `end` during the `while` condition, but it was greater than `end` when assigning a value to `timeout_at`. Add tests to ensure a socket.error is raised instead of passing a nonpositive value as a timeout to socket.create_connection.
* style(Makefile): add self-documenting make targets (#531)Derek2018-10-261-21/+22
|
* Merge pull request #532 from salbertson/patch-1Ben Bangert2018-10-231-1/+1
|\ | | | | Add "Reviewed by Hound" badge
| * Add "Reviewed by Hound" badgeScott Albertson2018-10-181-1/+1
|/
* docs: make badges link to travis and pypi (#528)Nakul Pathak2018-10-161-2/+2
| | | * docs: make badges link to travis and pypi
* docs: specify description type for pypi to render correctlyNakul Pathak2018-10-092-2/+3
|
* docs: remove broken downloads badgeJeff Widman2018-10-091-2/+0
| | | Pypi quit offering download stats, so remove this broken badge.
* fix(core): get_children with include_data=True uses GetChildren2 types (#514)Jean-Marc Saffroy2018-10-081-1/+2
|
* feat(tests): update Zookeeper 3.5.2-alpha to 3.5.4-betaStephen2018-10-084-17/+73
| | | | | | | | | | Version of Zookeeper is upgraded from 3.5.2-alpha to 3.5.4-beta for automated tests. Reconfig now needs superuser authentification, a test is added to cover this feature. Additionnal configuration and jvm parameters can be added when initializing ManagedZookeeper. This is needed to ensure reconfig's tests to pass and can be used in the future for similar needs. Closes #477
* docs(core): fix broken zookeeper programmers guide linkNakul Pathak2018-10-081-1/+1
|
* fix(core): allow authentification in RO and RW modesStephen2018-10-081-48/+56
| | | | | | | | | Fixes the bug introduced by PR #512 where it is not possible to connect in RO mode using authentication. Since the SASL authentification feature, the _session_fallback method should be called only after the SASL authentification is done. A new method is added to the ConnectionHandler class in order to correctly use KeeperState.CONNECTED or KeeperState.CONNECTED_RO.
* fix(core): Use a copy of auth data when reconnecting (#509)arushiagg2018-10-061-2/+8
| | | It is possible to race between processing a new addAuth request(which updates the client.auth_data set) and iterating through it during reconnect. To avoid set changes during iteration, make a copy.
* feat(core): add SASL DIGEST-MD5 supportStephen2018-10-067-9/+154
| | | | | | | | This adds the possibility to connect to Zookeeper using DIGEST-MD5 SASL. It uses the pure-sasl library to connect using SASL. In case the library is missing, connection to Zookeeper will be done without any authentification and a warning message will be displayed. Tests have been added for this feature. Documentation also has been updated.
* feat(tests): update Zookeeper version from 3.4.10 to 3.4.13Stephen2018-10-051-7/+7
| | | | Version of Zookeeper for automated tests is upgraded from 3.4.10 to 3.4.13.
* fix(core): change KazooRetry to uniformly jitter over the whole backoff ↵Andreas Guðmundsson2018-09-262-10/+3
| | | | | | | | | | interval (#521) The previous implementation would add a fixed amount of jitter around the calculated back-off time. Retry attempts were thus clustered around the exponentially spaced backoff points. This patch does exponential backoff but uniformly spreads the retries over an interval [0, backoff**attempt]
* feat(core): Added SSL support (#513)Stephen SORRIAUX2018-09-253-23/+98
| | | | | | | | | | | | | | | | | | * client: Allow SSL use when communicating with Zookeeper, fixes #382 Zookeeper 3.5 supports SSL for client communications, this commit adds support for it on the Kazoo side. Note that you need to give the client the key, certificate and CA files. Co-Authored-By: Monty Taylor <mordred@inaugust.com> * Added keyfile password for ssl connection * Added a way to bypass ssl certification validation * Added a timeout when using SSL connection
* fix(recipe): Delete lock node in queue recipe if entry already consumedKhaled Basbous2018-09-251-2/+11
| | | | | | | Delete lock node if already entry already consumed Fix #366 Related: #347 / #373
* Merge pull request #507 from python-zk/release/2.5Ben Bangert2018-06-013-2/+47
|\ | | | | chore: 2.5.0 release and changelog
| * chore: 2.5.0 release and changelog2.5.0release/2.5Ben Bangert2018-06-013-2/+47
|/
* fix(core): Fix gevent 1.3b1+ timeout importCarson Ip2018-05-111-2/+2
| | | | | gevent.event.Timeout is undocumented and will break when using gevent 1.3b1+. Use gevent.Timeout as suggested in gevent docs.
* fix(core): Correctly fire multiple callbacksPatrick White2018-03-262-3/+19
| | | | | | Due to the use of unbound lambdas in AsyncResult, multiple callbacks wouldn't actually get called, it would only call the final callback N times, where N is the number of registered callbacks.
* Update states.pyWei-Ming Yang2018-03-241-3/+3
| | | | fix a typo.
* feat(recipe): allow non ephemeral lockingRaghu Udiyar2018-03-232-4/+28
| | | | | | | | | | Right now if the program taking the lock exits, the lock is also released implicitly as the zk node is ephemeral. In some usecases its desirable to make the lock release explicit. For example, in scripting multiple programs that contend for a lock, or purposeful failing lock acquirers to detect issues. The ephemeral flag in acquire() allows for this behavior.
* fix(recipe): conn hangs when TreeCache refreshingJiangge Zhang2018-03-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation of session watcher triggers blocked operations. If there is a huge tree in ZooKeeper, reconnecting event will lead an initialized TreeCache into a bad performance state, because the connection routine was blocked by the session watcher of TreeCache. This commit put those blocked operations into a background queue to fix this. There is an example code snippet: from kazoo.client import KazooClient from kazoo.recipe.cache import TreeCache client = KazooClient() client.start() cache = TreeCache(client, '/a-huge-tree') cache.start() # Wait the cache be initialized and trigger a connection lost event. client.get_children('/') # The connection is still broken The patch of this commit has been used in the production environment of https://github.com/eleme.
* fix(recipe): Unexpected exceptions break TreeCacheJiangge Zhang2018-03-232-14/+30
|
* perf(recipe): Give TreeCache standalone queueJiangge Zhang2018-03-231-1/+16
| | | | This commit lets TreeCache do not use queue of connection routine any more.
* refactor: Unify queue factory in various handlersJiangge Zhang2018-03-232-7/+9
| | | | Then every handlers have queue_impl and queue_empty as their attributes.
* fix (recipe): Don't set creation watch on lock predecessor nodePatrick White2018-03-151-5/+8
| | | | | | | | Using exists will register a creation, as well as update and deletion watch on the given node. This introduces a race, where the predecessor node can get deleted between the call to getChildren() and exists(). If that happens, the exists() sets a create watch on a node that will never be created, leaks a create watch.
* fix: Pass watch as keyword arg instead of positional arg (#495)arushiagg2018-02-261-3/+4
| | | We instrument calls to async functions, but are unable to get the watch parameter because it is not being passed as part of kwargs. This will allow us to capture the watch parameter.
* fix(core): resolve race in IAsyncResult.wait() (#487)Jim Hanko2017-11-092-1/+29
| | | | | fix(core): resolve race in IAsyncResult.wait() closes #485
* Merge pull request #483 from python-zk/fix-gevent-requirementJeff Widman2017-11-042-7/+7
|\ | | | | fix: need gevent >= 1.2, not > 1.1
| * fix: need gevent >= 1.2, not > 1.1fix-gevent-requirementJeff Widman2017-11-032-7/+7
|/ | | | | | | Python 2.6 support was dropped in 1.2, so https://github.com/python-zk/kazoo/commit/2e8dcd3836d01640f07e8de911cdfb3639f97d20 simplified the dependency graph to require `gevent>1.1`. However, bugfix releases to the 1.1 series (1.1.1, etc) will satisfy this requirement, so we should actually be requiring `gevent >= 1.2` Additionally, these requirements should be specified in setup.py as well.
* Merge pull request #484 from python-zk/correct-supported-versions-in-readmeJeff Widman2017-11-031-2/+2
|\ | | | | docs: Correctly document supported versions
| * docs: Correctly document supported versionscorrect-supported-versions-in-readmeJeff Widman2017-11-021-2/+2
|/ | | | | Gevent support < 1.2 was dropped in https://github.com/python-zk/kazoo/commit/2e8dcd3836d01640f07e8de911cdfb3639f97d20 (and further tweaked in https://github.com/python-zk/kazoo/pull/483). Travis already tests the Zookeeper 3.5 series.
* Merge pull request #481 from python-zk/add-license-to-wheelJeff Widman2017-10-311-0/+3
|\ | | | | docs: Add license to Wheel
| * docs: Add license to Wheeladd-license-to-wheelJeff Widman2017-10-311-0/+3
|/ | | https://wheel.readthedocs.io/en/stable/index.html#including-the-license-in-the-generated-wheel-file
* Merge pull request #476 from tgockel/issue/455Jeff Widman2017-08-294-65/+67
|\ | | | | fix: Remove use of "async" as a variable
| * fix: Remove use of "async" as a variableTravis Gockel2017-08-244-65/+67
|/ | | | | | | The use of "async" and "await" as variable are deprecated in Python 3.7. This patch removes the use of "async" (there is no usage of "await" to fix). Closes #455
* Merge pull request #470 from python-zk/jeffwidman-drop-old-geventBen Bangert2017-07-281-2/+1
|\ | | | | Drop python 2.6 compatible gevent
| * chore: drop python 2.6 compatible geventjeffwidman-drop-old-geventJeff Widman2017-07-271-2/+1
|/ | | | We dropped python 2.6 support a while ago, so no need for the added complexity here.