diff options
author | Zuul <zuul@review.opendev.org> | 2022-07-15 20:17:58 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2022-07-15 20:17:58 +0000 |
commit | 1e86b9103584ce4360633df8e9c536a559a1f79b (patch) | |
tree | 828b63e7255e3dea9128c3fb93a58b073571d11b | |
parent | e3de0e634af62e46162eb8d2354416ce4f2ba77c (diff) | |
parent | 6b2216ebcce5f699b51d7d10b4100eef2dcbd5d0 (diff) | |
download | tooz-1e86b9103584ce4360633df8e9c536a559a1f79b.tar.gz |
Merge "Fix inappropriate logic in memcachedlock.release()"
-rw-r--r-- | releasenotes/notes/memcached-fix-lock-release-I6fc33b8e0a88510.yaml | 4 | ||||
-rw-r--r-- | tooz/drivers/memcached.py | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/releasenotes/notes/memcached-fix-lock-release-I6fc33b8e0a88510.yaml b/releasenotes/notes/memcached-fix-lock-release-I6fc33b8e0a88510.yaml new file mode 100644 index 0000000..aefd26c --- /dev/null +++ b/releasenotes/notes/memcached-fix-lock-release-I6fc33b8e0a88510.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Fixs inappropriate logic in memcachedlock.release()
\ No newline at end of file diff --git a/tooz/drivers/memcached.py b/tooz/drivers/memcached.py index 1cefd95..7cc40a9 100644 --- a/tooz/drivers/memcached.py +++ b/tooz/drivers/memcached.py @@ -150,11 +150,16 @@ class MemcachedLock(locking.Lock): # it being done in the client side (non-atomic). value = self.coord.client.get(self.name) if value != self.coord._member_id: + # NOTE(zhen): Although ``member_ id`` is different, self lock + # object needs to be removed from'_ acquired_locks' because it + # has the same key. + self.coord._acquired_locks.remove(self) return False else: + # NOTE(zhen): Whether 'was_deleted' was 'TRUE' or not, + # eventually we have to remove self from '_acquired_locks'. was_deleted = self.coord.client.delete(self.name, noreply=False) - if was_deleted: - self.coord._acquired_locks.remove(self) + self.coord._acquired_locks.remove(self) return was_deleted @_translate_failures |