6b2216ebcce5f699b51d7d10b4100eef2dcbd5d0
Whether 'was_deleted' was 'TRUE' or not, eventually we have to remove self from '_acquired_locks'. For example: 1. App #1 with coordinator 'A' wants to release lock "b" 2. 'self.coord.client.delete()' failed for some reason(.e.g, BrokenPipeError,MemcacheUnexpectedCloseError) 3. According to the former logic,lock "b" will not remove from "_acquired_locks", so "self.heartbeat()" will make it alive forever until App #1 was down or lock "b" turned expired. 4. Now App #1 with coordinator 'A' wants to acquire lock "c", who have the same lock-name with lock "b",It is clear that this will fail and prevent the locked program from continuing to execute. Change-Id: I6fc33b8e0a88510027bcfc30d1504489d2a91b4e
Tooz
The Tooz project aims at centralizing the most common distributed primitives like group membership protocol, lock service and leader election by providing a coordination API helping developers to build distributed applications.
- Free software: Apache license
- Documentation: https://docs.openstack.org/tooz/latest/
- Source: https://opendev.org/openstack/tooz
- Bugs: https://bugs.launchpad.net/python-tooz/
- Release notes: https://docs.openstack.org/releasenotes/tooz
Join us
Description
Languages
Python
99.2%
Shell
0.8%