Skip to content

Commit f055dc0

Browse files
committed
Merge pull request #358 from kormat/lock_failures
Fix handling of retry failures in Lock.acquire
2 parents 4dddb7e + a96b1e4 commit f055dc0

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

kazoo/recipe/lock.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ def __init__(self, client, path, identifier=None):
8787
# some data is written to the node. this can be queried via
8888
# contenders() to see who is contending for the lock
8989
self.data = str(identifier or "").encode('utf-8')
90+
self.node = None
9091

9192
self.wake_event = client.handler.event_object()
9293

@@ -160,8 +161,7 @@ def _acquire_lock():
160161
gotten = retry(self._inner_acquire,
161162
blocking=blocking, timeout=timeout)
162163
except RetryFailedError:
163-
if not already_acquired:
164-
self._best_effort_cleanup()
164+
pass
165165
except KazooException:
166166
# if we did ultimately fail, attempt to clean up
167167
exc_info = sys.exc_info()
@@ -172,7 +172,7 @@ def _acquire_lock():
172172
if gotten:
173173
self.is_acquired = gotten
174174
if not gotten and not already_acquired:
175-
self._delete_node(self.node)
175+
self._best_effort_cleanup()
176176
return gotten
177177
finally:
178178
self._lock.release()
@@ -268,7 +268,7 @@ def _delete_node(self, node):
268268

269269
def _best_effort_cleanup(self):
270270
try:
271-
node = self._find_node()
271+
node = self.node or self._find_node()
272272
if node:
273273
self._delete_node(node)
274274
except KazooException: # pragma: nocover

0 commit comments

Comments
 (0)